package yukicoder.no48 import kotlin.math.abs import kotlin.math.ceil /** * エントリポイント * @param args コマンドライン引数 */ fun main(args: Array) { val in1 = readLine() val in2 = readLine() val in3 = readLine() println(moveRobot(in1, in2, in3)) } /** * 目的地まで何命令で到達できるかを返します。 * @param eastWest 目的地の東西方向 * @param northSouth 目的地の南北方向 * @param maxDistance ロボットが1命令につき前進することができる最大の距離 */ fun moveRobot(eastWest: String?, northSouth: String?, maxDistance: String?): String { if (eastWest == null || northSouth == null || maxDistance == null) { return "" } var num = 0 val ew = eastWest.toDouble() val ns = northSouth.toDouble() val md = maxDistance.toInt() // 北 if (ns > 0) { num += ceil(abs(ns / md)).toInt() } // 東西 if (ew != 0.0) { num++ num += ceil(abs(ew / md)).toInt() } // 北から南へ向く場合、いったん東西へ向く if (ew == 0.0 && ns < 0) { num++ } // 南 if (ns < 0) { num++ num += ceil(abs(ns / md)).toInt() } return num.toString() }