Submission #421377


Source Code Expand

import java.util.Scanner
 
object Main {
  val dx = Array(-1, 1, 0, 0)
  val dy = Array(0, 0, 1, -1)
 
  def main(args: Array[String]): Unit = {
    val scanner = new java.util.Scanner(System.in)
    val h = scanner.nextInt()
    val w = scanner.nextInt()
    val board = (1 to h).map { _ => scanner.next().toCharArray }.toArray
    val result = if (solve(h, w, board)) "Yes" else "No"
    println(result)
  }
 
  def solve(h: Int, w: Int, board: Array[Array[Char]]): Boolean = {
    val start = (for {
      i <- (0 until h)
      j <- (0 until w)
    } yield (i, j)).find { case (i, j) => board(i)(j) == 's' }
    search(start.get, h, w, board)
  }
 
  def search(
    s: (Int, Int),
    h: Int,
    w: Int,
    board: Array[Array[Char]]): Boolean = {
    // val visited = scala.collection.mutable.Set.empty[(Int, Int)]
    var visited = Array.fill(h)(Array.fill(w)(false))
    var stack = List(s)
    while (stack.nonEmpty) {
      stack match {
        case Nil => return false
        case current :: t =>
          stack = t
          current match {
            case (i, j) if i < 0 || i >= h || j < 0 || j >= w =>
            // case (i, j) if visited((i, j)) =>
            case (i, j) if visited(i)(j) =>
            case (i, j) if board(i)(j) == '#' =>
            case (i, j) if board(i)(j) == 'g' => return true
            case (i, j) =>
              // visited += ((i, j))
              visited(i)(j) = true;
              val news = (0 to 3).map { x =>
                (i + dy(x), j + dx(x))
              }.toList
              stack = news ::: stack
          }
      } 
    }
    false
  }
}

Submission Info

Submission Time
Task A - 深さ優先探索
User yoshikyoto
Language Scala (2.11.5)
Score 0
Code Size 1665 Byte
Status TLE
Exec Time 2035 ms
Memory 87196 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 100
Status
AC × 5
AC × 78
TLE × 5
Set Name Test Cases
Sample 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt, 00_sample_04.txt, 00_sample_05.txt
All 00_min_01.txt, 00_min_02.txt, 00_min_03.txt, 00_min_04.txt, 00_min_05.txt, 00_min_06.txt, 00_min_07.txt, 00_min_08.txt, 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt, 00_sample_04.txt, 00_sample_05.txt, 01_rnd_00.txt, 01_rnd_01.txt, 01_rnd_02.txt, 01_rnd_03.txt, 01_rnd_04.txt, 01_rnd_05.txt, 01_rnd_06.txt, 01_rnd_07.txt, 01_rnd_08.txt, 01_rnd_09.txt, 01_rnd_10.txt, 01_rnd_11.txt, 01_rnd_12.txt, 01_rnd_13.txt, 01_rnd_14.txt, 01_rnd_15.txt, 01_rnd_16.txt, 01_rnd_17.txt, 01_rnd_18.txt, 01_rnd_19.txt, 02_rndhard_00.txt, 02_rndhard_01.txt, 02_rndhard_02.txt, 02_rndhard_03.txt, 02_rndhard_04.txt, 02_rndhard_05.txt, 02_rndhard_06.txt, 02_rndhard_07.txt, 02_rndhard_08.txt, 02_rndhard_09.txt, 02_rndhard_10.txt, 02_rndhard_11.txt, 02_rndhard_12.txt, 02_rndhard_13.txt, 02_rndhard_14.txt, 02_rndhard_15.txt, 02_rndhard_16.txt, 02_rndhard_17.txt, 02_rndhard_18.txt, 02_rndhard_19.txt, 02_rndhard_20.txt, 02_rndhard_21.txt, 02_rndhard_22.txt, 02_rndhard_23.txt, 02_rndhard_24.txt, 02_rndhard_25.txt, 02_rndhard_26.txt, 02_rndhard_27.txt, 02_rndhard_28.txt, 02_rndhard_29.txt, 02_rndhard_30.txt, 02_rndhard_31.txt, 02_rndhard_32.txt, 02_rndhard_33.txt, 02_rndhard_34.txt, 02_rndhard_35.txt, 02_rndhard_36.txt, 02_rndhard_37.txt, 02_rndhard_38.txt, 02_rndhard_39.txt, 03_rndhardsmall_00.txt, 03_rndhardsmall_01.txt, 03_rndhardsmall_02.txt, 03_rndhardsmall_03.txt, 03_rndhardsmall_04.txt, 03_rndhardsmall_05.txt, 03_rndhardsmall_06.txt, 03_rndhardsmall_07.txt, 03_rndhardsmall_08.txt, 03_rndhardsmall_09.txt
Case Name Status Exec Time Memory
00_min_01.txt AC 1229 ms 48324 KB
00_min_02.txt AC 1200 ms 48416 KB
00_min_03.txt AC 1191 ms 48280 KB
00_min_04.txt AC 1176 ms 48052 KB
00_min_05.txt AC 1166 ms 48280 KB
00_min_06.txt AC 1179 ms 48304 KB
00_min_07.txt AC 1182 ms 48392 KB
00_min_08.txt AC 1175 ms 48200 KB
00_sample_01.txt AC 1170 ms 48176 KB
00_sample_02.txt AC 1181 ms 48272 KB
00_sample_03.txt AC 1196 ms 48120 KB
00_sample_04.txt AC 1180 ms 48376 KB
00_sample_05.txt AC 1176 ms 48300 KB
01_rnd_00.txt AC 1567 ms 68232 KB
01_rnd_01.txt TLE 2033 ms 87196 KB
01_rnd_02.txt AC 1957 ms 74148 KB
01_rnd_03.txt TLE 2034 ms 79736 KB
01_rnd_04.txt TLE 2035 ms 86364 KB
01_rnd_05.txt AC 1554 ms 69292 KB
01_rnd_06.txt AC 1842 ms 70088 KB
01_rnd_07.txt AC 1866 ms 72500 KB
01_rnd_08.txt AC 1545 ms 68076 KB
01_rnd_09.txt AC 1551 ms 68332 KB
01_rnd_10.txt AC 1931 ms 72124 KB
01_rnd_11.txt AC 1557 ms 69228 KB
01_rnd_12.txt TLE 2034 ms 85452 KB
01_rnd_13.txt AC 1991 ms 80856 KB
01_rnd_14.txt AC 1522 ms 68124 KB
01_rnd_15.txt AC 1921 ms 72884 KB
01_rnd_16.txt AC 1522 ms 68148 KB
01_rnd_17.txt AC 1939 ms 72732 KB
01_rnd_18.txt AC 1536 ms 68032 KB
01_rnd_19.txt TLE 2034 ms 86292 KB
02_rndhard_00.txt AC 1624 ms 68428 KB
02_rndhard_01.txt AC 1618 ms 68544 KB
02_rndhard_02.txt AC 1872 ms 70952 KB
02_rndhard_03.txt AC 1895 ms 70640 KB
02_rndhard_04.txt AC 1570 ms 68828 KB
02_rndhard_05.txt AC 1576 ms 69720 KB
02_rndhard_06.txt AC 1623 ms 68404 KB
02_rndhard_07.txt AC 1582 ms 68412 KB
02_rndhard_08.txt AC 1792 ms 69544 KB
02_rndhard_09.txt AC 1813 ms 69848 KB
02_rndhard_10.txt AC 1776 ms 70080 KB
02_rndhard_11.txt AC 1803 ms 69812 KB
02_rndhard_12.txt AC 1730 ms 68480 KB
02_rndhard_13.txt AC 1730 ms 70060 KB
02_rndhard_14.txt AC 1802 ms 70148 KB
02_rndhard_15.txt AC 1811 ms 69788 KB
02_rndhard_16.txt AC 1630 ms 68684 KB
02_rndhard_17.txt AC 1619 ms 68344 KB
02_rndhard_18.txt AC 1660 ms 68308 KB
02_rndhard_19.txt AC 1647 ms 68668 KB
02_rndhard_20.txt AC 1655 ms 69700 KB
02_rndhard_21.txt AC 1629 ms 68076 KB
02_rndhard_22.txt AC 1750 ms 68940 KB
02_rndhard_23.txt AC 1684 ms 68756 KB
02_rndhard_24.txt AC 1632 ms 68316 KB
02_rndhard_25.txt AC 1638 ms 68560 KB
02_rndhard_26.txt AC 1635 ms 68156 KB
02_rndhard_27.txt AC 1590 ms 68516 KB
02_rndhard_28.txt AC 1658 ms 68912 KB
02_rndhard_29.txt AC 1656 ms 69880 KB
02_rndhard_30.txt AC 1542 ms 68140 KB
02_rndhard_31.txt AC 1582 ms 69780 KB
02_rndhard_32.txt AC 1771 ms 69964 KB
02_rndhard_33.txt AC 1715 ms 68688 KB
02_rndhard_34.txt AC 1638 ms 70068 KB
02_rndhard_35.txt AC 1615 ms 69944 KB
02_rndhard_36.txt AC 1589 ms 68436 KB
02_rndhard_37.txt AC 1579 ms 68572 KB
02_rndhard_38.txt AC 1674 ms 68416 KB
02_rndhard_39.txt AC 1653 ms 69928 KB
03_rndhardsmall_00.txt AC 1176 ms 47772 KB
03_rndhardsmall_01.txt AC 1197 ms 48296 KB
03_rndhardsmall_02.txt AC 1190 ms 48200 KB
03_rndhardsmall_03.txt AC 1180 ms 48220 KB
03_rndhardsmall_04.txt AC 1175 ms 48212 KB
03_rndhardsmall_05.txt AC 1175 ms 48292 KB
03_rndhardsmall_06.txt AC 1169 ms 48320 KB
03_rndhardsmall_07.txt AC 1423 ms 47868 KB
03_rndhardsmall_08.txt AC 1504 ms 48132 KB
03_rndhardsmall_09.txt AC 1503 ms 48172 KB