結果
問題 |
No.5017 Tool-assisted Shooting
|
ユーザー |
![]() |
提出日時 | 2023-07-16 16:02:45 |
言語 | Kotlin (2.1.0) |
結果 |
RE
|
実行時間 | - |
コード長 | 2,125 bytes |
コンパイル時間 | 13,493 ms |
コンパイル使用メモリ | 426,580 KB |
実行使用メモリ | 71,416 KB |
スコア | 68,647 |
平均クエリ数 | 6.18 |
最終ジャッジ日時 | 2023-07-16 16:03:40 |
合計ジャッジ時間 | 49,403 ms |
ジャッジサーバーID (参考情報) |
judge13 / judge12 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 2 RE * 98 |
コンパイルメッセージ
Main.kt:10:10: warning: parameter 'args' is never used fun main(args: Array<String>) { ^ Main.kt:36:17: warning: condition 'near == null' is always 'false' if (near == null) { ^
ソースコード
private fun next() = readLine()!! private fun nextInt() = next().toInt() private fun nextLong() = next().toLong() private fun nextDouble() = next().toDouble() private fun nextList() = next().split(" ") private fun nextIntList() = next().split(" ").map { it.toInt() }.toIntArray() private fun nextLongList() = next().split(" ").map { it.toLong() }.toLongArray() private fun nextDoubleList() = next().split(" ").map { it.toDouble() }.toDoubleArray() fun main(args: Array<String>) { var turn = 0 var enemyList = mutableListOf<Enemy>() var own = 12 var power = 100 while (turn < 1000) { val n = nextInt() if (n == -1) { return } val newEnemyList = mutableListOf<Enemy>() for (enemy in enemyList) { val isAlive = enemy.nextTurn() if (isAlive) { newEnemyList.add(enemy) } } enemyList = newEnemyList for (i in 0 until n) { val hpx = nextIntList() enemyList.add(Enemy(hpx[2], 59, hpx[0], hpx[1])) } if (enemyList.isEmpty()) { println("S") } else { val near = enemyList.filter { it.x == own }.minBy { it.y } if (near == null) { if (Math.random() < 0.5) { println("R") own++ } else { println("L") own-- } } else { if (near.h > near.y * (power / 100)) { if (Math.random() < 0.5) { println("R") own++ } else { println("L") own-- } } else { println("S") } } } turn++ } } class Enemy(var x: Int, var y: Int, var h: Int, var p: Int) { val maxH = h fun nextTurn(): Boolean { y-- return y >= 0 } fun hit(damage: Int): Boolean { h -= damage return h >= 0 } }