private const val SPECIAL_ATTACK_HIT_RATE = 2.0 / 3.0 private const val SPECIAL_ATTACK_NUM_EXPECTED = 1.0 / SPECIAL_ATTACK_HIT_RATE internal fun solve(HP: Int, normal: Int, special: Int): String { if (normal > special){ return (HP / normal + 1.0).toString() } fun attackUntilYouDie(currentHP: Double): Double { return when { currentHP <= 0 -> { 0.0 } currentHP <= normal -> { 1.0 } else -> { SPECIAL_ATTACK_NUM_EXPECTED + attackUntilYouDie(currentHP - special) } } } return attackUntilYouDie(HP.toDouble()).toString() } fun main(args: Array) { var OUTPUT = "" val br = System.`in`.bufferedReader() val (HP, normal, special) = br.readLine().split(" ").map { it.toInt() } OUTPUT += solve(HP, normal, special) print(OUTPUT) }