結果
問題 | No.20 砂漠のオアシス |
ユーザー |
![]() |
提出日時 | 2019-09-01 18:23:38 |
言語 | Kotlin (1.9.23) |
結果 |
TLE
|
実行時間 | - |
コード長 | 2,233 bytes |
コンパイル時間 | 17,754 ms |
コンパイル使用メモリ | 449,032 KB |
実行使用メモリ | 366,444 KB |
最終ジャッジ日時 | 2024-11-28 23:25:42 |
合計ジャッジ時間 | 91,103 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 320 ms
55,084 KB |
testcase_01 | AC | 427 ms
89,884 KB |
testcase_02 | AC | 432 ms
59,144 KB |
testcase_03 | TLE | - |
testcase_04 | TLE | - |
testcase_05 | RE | - |
testcase_06 | RE | - |
testcase_07 | RE | - |
testcase_08 | RE | - |
testcase_09 | RE | - |
testcase_10 | AC | 327 ms
56,776 KB |
testcase_11 | AC | 322 ms
60,744 KB |
testcase_12 | TLE | - |
testcase_13 | TLE | - |
testcase_14 | TLE | - |
testcase_15 | TLE | - |
testcase_16 | RE | - |
testcase_17 | TLE | - |
testcase_18 | TLE | - |
testcase_19 | RE | - |
testcase_20 | TLE | - |
コンパイルメッセージ
Main.kt:1:10: warning: parameter 'args' is never used fun main(args: Array<String>) { ^ Main.kt:56:9: warning: variable 'useOasis' is never used var useOasis = notUseOasis ^ Main.kt:59:21: warning: variable 'vital' initializer is redundant var vital = v ^ Main.kt:63:31: warning: unnecessary non-null assertion (!!) on a non-null receiver of type Int vital = (v - temp1!!)*2 ^
ソースコード
fun main(args: Array<String>) { val (n,v,ox, oy) = readLine()!!.split(" ").map { it.toInt() } val map = mutableListOf<List<Pos>>() val list = mutableListOf<Pos>() val step = MutableList<MutableList<Int?>>(n*n, { MutableList(n*n, {null}) }) for(i in 1..n) { val temp = readLine()!!.split(" ").map { it.toInt() } val temp2 = mutableListOf<Pos>() for(j in temp.indices) { temp2.add(Pos(list.size + temp2.size, j, i-1, temp[j])) } list.addAll(temp2) map.add(temp2) } for(i in list.indices) { for(j in list.indices) { for(k in list.indices) { if(j == k) { step[j][k] = 0 continue } val objJ = list[j] val objK = list[k] if((objJ.x == objK.x && Math.abs(objJ.y - objK.y) == 1) || (objJ.y == objK.y && Math.abs(objJ.x - objK.x) == 1)) { step[j][k] = objK.value } step[j][i]?.let { val part1 = it step[i][k]?.let { val part2 = it step[j][k]?.also { if(part1 + part2 < it) { step[j][k] = part1 + part2 } } ?: run { step[j][k] = part1 + part2 } } } } } } // スタートからゴール直通 var canGoal:Boolean? = null val notUseOasis = step[0].last()!! if(notUseOasis < v) { canGoal = true } var oasis:Pos? = null if(ox > 0 && oy > 0) { oasis = map[oy-1][ox-1] } var useOasis = notUseOasis if(oasis != null) { val temp1 = step[0][oasis.id] var vital = v if(temp1!! >= v) { vital = 0 } else { vital = (v - temp1!!)*2 } val temp2 = step[oasis.id].last()!! canGoal = vital > temp2 } val ans = if(canGoal!!) "YES" else "NO" println(ans) } class Pos(val id:Int, val x:Int, val y:Int, val value:Int)