Submission #423649


Source Code Expand

import scala.collection.immutable.Stack
import scala.annotation.tailrec

case class Graph(es: scala.collection.mutable.Map[Vertex, Seq[Edge]])
case class Vertex(s: Char, i: Int, j: Int)
case class Edge(v: Vertex)

  object Main{
    def main(args: Array[String]):Unit = {
      import scala.collection.mutable
      val graph = Graph(mutable.Map():mutable.Map[Vertex, Seq[Edge]])
      val scanner = new java.util.Scanner(System.in)
      val h = scanner.nextInt
      val w = scanner.nextInt

      val inputs = (0 until h).toArray.map{x => scanner.next.toArray}
      for{i <- (0 until h)
          j <- (0 until w)
      }(getFourWay(graph, inputs, h, w, i, j))
      val start = graph.es.keySet.filter(_.s == 's').head
      val goal = graph.es.keySet.filter(_.s == 'g').head
      if(dfsRec(graph, start, goal)) println("Yes")
      else println("No")
    }

  def getFourWay(graph:Graph ,arr2:Array[Array[Char]], h:Int, w:Int, i:Int, j:Int): Unit = {
        val edges = scala.collection.mutable.ArrayBuffer.empty[Edge]
        // 北(i-1, j), 東(i, j+1), 南(i+1, j), 西(i, j-1)
        if(i-1 >= 0){edges += Edge(Vertex(arr2(i-1)(j), i-1, j))}
        if(j+1 < w){edges += Edge(Vertex(arr2(i)(j+1), i, j+1))}
        if(i+1 < h){edges += Edge(Vertex(arr2(i+1)(j), i+1, j))}
        if(j-1 >= 0){edges += Edge(Vertex(arr2(i)(j-1), i, j-1))}
        graph.es += Vertex(arr2(i)(j), i, j) -> edges.toSeq
  }


    def dfsRec(g: Graph, v: Vertex, goal: Vertex, visited: Set[Vertex] = Set()): Boolean = {
      if (v == goal) true
      else if (visited.contains(v)) false
      else g.es.get(v).exists(_.filter(e => e.v.s != '#').exists(e => dfsRec(g, e.v, goal, visited + v)))
    }
}

Submission Info

Submission Time
Task A - 深さ優先探索
User ababup1192
Language Scala (2.11.5)
Score 0
Code Size 1733 Byte
Status TLE
Exec Time 2056 ms
Memory 187160 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 100
Status
AC × 5
AC × 23
TLE × 60
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 1362 ms 49596 KB
00_min_02.txt AC 1160 ms 49624 KB
00_min_03.txt AC 1166 ms 49524 KB
00_min_04.txt AC 1152 ms 49592 KB
00_min_05.txt AC 1161 ms 49624 KB
00_min_06.txt AC 1176 ms 49628 KB
00_min_07.txt AC 1167 ms 49488 KB
00_min_08.txt AC 1157 ms 49624 KB
00_sample_01.txt AC 1166 ms 49764 KB
00_sample_02.txt AC 1218 ms 49248 KB
00_sample_03.txt AC 1289 ms 49732 KB
00_sample_04.txt AC 1202 ms 49220 KB
00_sample_05.txt AC 1214 ms 49544 KB
01_rnd_00.txt TLE 2044 ms 140984 KB
01_rnd_01.txt TLE 2056 ms 152880 KB
01_rnd_02.txt TLE 2047 ms 187160 KB
01_rnd_03.txt TLE 2042 ms 143488 KB
01_rnd_04.txt TLE 2042 ms 142308 KB
01_rnd_05.txt TLE 2043 ms 141628 KB
01_rnd_06.txt TLE 2044 ms 185496 KB
01_rnd_07.txt TLE 2045 ms 184800 KB
01_rnd_08.txt TLE 2045 ms 141408 KB
01_rnd_09.txt TLE 2053 ms 142092 KB
01_rnd_10.txt TLE 2044 ms 184568 KB
01_rnd_11.txt TLE 2042 ms 141584 KB
01_rnd_12.txt TLE 2044 ms 142928 KB
01_rnd_13.txt TLE 2043 ms 143564 KB
01_rnd_14.txt TLE 2049 ms 142728 KB
01_rnd_15.txt TLE 2042 ms 185868 KB
01_rnd_16.txt TLE 2043 ms 141784 KB
01_rnd_17.txt TLE 2042 ms 185036 KB
01_rnd_18.txt TLE 2045 ms 142388 KB
01_rnd_19.txt TLE 2044 ms 143408 KB
02_rndhard_00.txt TLE 2043 ms 184868 KB
02_rndhard_01.txt TLE 2045 ms 184132 KB
02_rndhard_02.txt TLE 2043 ms 184960 KB
02_rndhard_03.txt TLE 2047 ms 184884 KB
02_rndhard_04.txt TLE 2043 ms 184728 KB
02_rndhard_05.txt TLE 2046 ms 183872 KB
02_rndhard_06.txt TLE 2042 ms 184784 KB
02_rndhard_07.txt TLE 2042 ms 178860 KB
02_rndhard_08.txt TLE 2042 ms 185484 KB
02_rndhard_09.txt TLE 2042 ms 185076 KB
02_rndhard_10.txt TLE 2042 ms 185324 KB
02_rndhard_11.txt TLE 2043 ms 184828 KB
02_rndhard_12.txt TLE 2042 ms 186380 KB
02_rndhard_13.txt TLE 2042 ms 186608 KB
02_rndhard_14.txt TLE 2043 ms 185228 KB
02_rndhard_15.txt TLE 2043 ms 185680 KB
02_rndhard_16.txt TLE 2043 ms 184108 KB
02_rndhard_17.txt TLE 2042 ms 184904 KB
02_rndhard_18.txt TLE 2043 ms 184456 KB
02_rndhard_19.txt TLE 2042 ms 185620 KB
02_rndhard_20.txt TLE 2043 ms 185008 KB
02_rndhard_21.txt TLE 2043 ms 184820 KB
02_rndhard_22.txt TLE 2044 ms 184920 KB
02_rndhard_23.txt TLE 2042 ms 183584 KB
02_rndhard_24.txt TLE 2043 ms 184152 KB
02_rndhard_25.txt TLE 2043 ms 185284 KB
02_rndhard_26.txt TLE 2043 ms 184460 KB
02_rndhard_27.txt TLE 2043 ms 184952 KB
02_rndhard_28.txt TLE 2043 ms 184840 KB
02_rndhard_29.txt TLE 2043 ms 184332 KB
02_rndhard_30.txt TLE 2043 ms 141464 KB
02_rndhard_31.txt TLE 2042 ms 142616 KB
02_rndhard_32.txt TLE 2054 ms 185196 KB
02_rndhard_33.txt TLE 2050 ms 186040 KB
02_rndhard_34.txt TLE 2044 ms 184600 KB
02_rndhard_35.txt TLE 2042 ms 185204 KB
02_rndhard_36.txt TLE 2041 ms 184888 KB
02_rndhard_37.txt TLE 2043 ms 185296 KB
02_rndhard_38.txt TLE 2042 ms 185216 KB
02_rndhard_39.txt TLE 2044 ms 185172 KB
03_rndhardsmall_00.txt AC 1122 ms 49732 KB
03_rndhardsmall_01.txt AC 1138 ms 49240 KB
03_rndhardsmall_02.txt AC 1125 ms 49312 KB
03_rndhardsmall_03.txt AC 1121 ms 49292 KB
03_rndhardsmall_04.txt AC 1125 ms 49552 KB
03_rndhardsmall_05.txt AC 1141 ms 49612 KB
03_rndhardsmall_06.txt AC 1127 ms 49256 KB
03_rndhardsmall_07.txt AC 1144 ms 49496 KB
03_rndhardsmall_08.txt AC 1171 ms 49728 KB
03_rndhardsmall_09.txt AC 1156 ms 49748 KB