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) { var turn = 0 var enemyList = mutableListOf() var own = 12 var power = 100 while (turn < 1000) { val n = nextInt() if (n == -1) { return } val newEnemyList = mutableListOf() 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 sameLine = enemyList.filter { it.x == own } if (sameLine.isEmpty()) { if (Math.random() < 0.5) { println("R") own++ } else { println("L") own-- } } else { val near = sameLine.minBy { it.y }!! 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 } }