結果
問題 | No.157 2つの空洞 |
ユーザー | バカらっく |
提出日時 | 2019-11-09 03:01:39 |
言語 | Kotlin (1.9.23) |
結果 |
RE
|
実行時間 | - |
コード長 | 2,573 bytes |
コンパイル時間 | 14,463 ms |
コンパイル使用メモリ | 451,276 KB |
実行使用メモリ | 53,028 KB |
最終ジャッジ日時 | 2024-09-15 03:54:23 |
合計ジャッジ時間 | 22,241 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | RE | - |
testcase_01 | AC | 318 ms
51,848 KB |
testcase_02 | AC | 313 ms
51,772 KB |
testcase_03 | RE | - |
testcase_04 | AC | 317 ms
51,956 KB |
testcase_05 | AC | 320 ms
51,856 KB |
testcase_06 | AC | 319 ms
52,196 KB |
testcase_07 | AC | 321 ms
52,068 KB |
testcase_08 | AC | 316 ms
51,932 KB |
testcase_09 | AC | 317 ms
51,968 KB |
testcase_10 | AC | 319 ms
52,072 KB |
testcase_11 | AC | 319 ms
51,908 KB |
testcase_12 | AC | 322 ms
52,112 KB |
testcase_13 | AC | 322 ms
52,072 KB |
testcase_14 | AC | 331 ms
52,048 KB |
testcase_15 | AC | 334 ms
51,912 KB |
testcase_16 | AC | 335 ms
52,128 KB |
testcase_17 | AC | 370 ms
53,028 KB |
testcase_18 | AC | 326 ms
52,080 KB |
testcase_19 | AC | 326 ms
52,132 KB |
コンパイルメッセージ
Main.kt:3:10: warning: parameter 'arr' is never used fun main(arr:Array<String>) { ^
ソースコード
import java.util.* fun main(arr:Array<String>) { val (w,h) = readLine()!!.split(" ").map { it.toInt() } val map = (1..h).map { readLine()!!.toCharArray() } val groupMap = (1..h).map { (1..w).map { 0 }.toMutableList() }.toMutableList() var mapIndex = 1 for(r in map.indices) { for(c in map[r].indices) { if(map[r][c] == '#') { continue } if(groupMap[r][c] > 0) { continue } val queue = LinkedList<Pos>() queue.add(Pos(r,c)) groupMap[r][c] = mapIndex while (queue.isNotEmpty()) { val current = queue.pop() for(newR in (current.row-1..current.row+1)) { if(newR < 0) { continue } if(newR >= h) { continue } for(newC in (current.col-1..current.col+1)) { if(newC < 0) { continue } if(newC >= w) { continue } if(newR == current.row && newC == current.col) { continue } if(newR != current.row && newC != current.col) { continue } if(groupMap[newR][newC] > 0) { continue } if(map[newR][newC] == '#') { continue } groupMap[newR][newC] = mapIndex queue.push(Pos(newR,newC)) } } } mapIndex ++ } } var ans = w*h for(r1 in map.indices) { for(c1 in map[r1].indices) { if(map[r1][c1] == '#') { continue } for(r2 in map.indices) { for(c2 in map.indices) { if(map[r2][c2] == '#') { continue } if(groupMap[r1][c1] == groupMap[r2][c2]) { continue } val dist = Math.abs(r1-r2) + Math.abs(c1-c2) - 1 ans = Math.min(ans, dist) } } } } println(ans) } class Pos(val row:Int, val col:Int)