結果
問題 | No.48 ロボットの操縦 |
ユーザー | tsunabit |
提出日時 | 2018-04-08 23:49:52 |
言語 | Java21 (openjdk 21) |
結果 |
AC
|
実行時間 | 1,052 ms / 5,000 ms |
コード長 | 2,651 bytes |
コンパイル時間 | 3,330 ms |
コンパイル使用メモリ | 74,868 KB |
実行使用メモリ | 41,660 KB |
最終ジャッジ日時 | 2024-06-26 20:29:35 |
合計ジャッジ時間 | 8,098 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 124 ms
41,524 KB |
testcase_01 | AC | 115 ms
39,840 KB |
testcase_02 | AC | 124 ms
41,396 KB |
testcase_03 | AC | 1,052 ms
41,280 KB |
testcase_04 | AC | 125 ms
41,276 KB |
testcase_05 | AC | 126 ms
41,584 KB |
testcase_06 | AC | 125 ms
41,292 KB |
testcase_07 | AC | 131 ms
41,192 KB |
testcase_08 | AC | 128 ms
41,548 KB |
testcase_09 | AC | 131 ms
41,088 KB |
testcase_10 | AC | 123 ms
41,396 KB |
testcase_11 | AC | 125 ms
41,300 KB |
testcase_12 | AC | 132 ms
41,640 KB |
testcase_13 | AC | 124 ms
41,292 KB |
testcase_14 | AC | 126 ms
41,372 KB |
testcase_15 | AC | 130 ms
41,648 KB |
testcase_16 | AC | 128 ms
41,156 KB |
testcase_17 | AC | 128 ms
41,660 KB |
testcase_18 | AC | 125 ms
41,112 KB |
testcase_19 | AC | 127 ms
41,536 KB |
testcase_20 | AC | 125 ms
41,480 KB |
testcase_21 | AC | 111 ms
40,104 KB |
testcase_22 | AC | 125 ms
41,400 KB |
testcase_23 | AC | 124 ms
41,256 KB |
testcase_24 | AC | 114 ms
39,992 KB |
ソースコード
import java.util.Scanner; // これ問題文が説明不足じゃね // 問題文 // 太郎君はロボットを遠隔で操縦している。 // このロボットは現在(0,0)の座標に立っていて北の方向を向いている。 // 太郎君はいまこのロボットを(X,Y)の座標に移動させたいと思っている。 // ロボットに出来る命令は、1回につき以下のうちいずれかの命令を選んで指示することができる。 // ・時計回りに、90∘ その場で向き(進行方向)を変える。 // ・反時計回りに、90∘ その場で向き(進行方向)を変える。 // ・向いている方向に K距離だけ前進する。Kは、(1≤K≤L) の範囲で、命令のたびに指定することができる。 // *** // 入力 // X // Y // L // 1行目に、移動先の東西軸座標を表す整数 X (−109≤X≤109) が与えられる。正の方向を東とする。 // 2行目に、移動先の南北軸座標を表す整数 Y (−109≤Y≤109) が与えられる。正の方向を北とする。 // 3行目に、ロボットが1命令につき前進することができる最大の距離を表す整数 L (1≤L≤109) が与えられる。 // *** // 出力 // ロボットが移動先に到達するまでに必要な最小の命令回数を出力してください。 // 最後に改行してください。 public class No48 { public static void main(String[] args) { // 標準入力から読み込む際に、Scannerオブジェクトを使う。 Scanner sc = new Scanner(System.in); int X = sc.nextInt(); int Y = sc.nextInt(); int L = sc.nextInt(); int count = 0; int temp = 0; // Yの移動 temp = Math.abs(Y); while(temp > L) { temp -= L; count++; // System.out.println("Y"); } if(temp > 0) { count++; // System.out.println("YY"); } // Xの移動 temp = Math.abs(X); while(temp > L) { temp -= L; count++; // System.out.println("X"); } if(temp > 0) { count++; // System.out.println("XX"); } // 座標の位置による方向転換の回数 if(X == 0 && Y > 0) { // Nothing }else if(X != 0 && Y >= 0) { count += 1; // System.out.println("ZZZ"); }else if(Y < 0) { count += 2; // System.out.println("Z"); }else { // Nothing } System.out.println(count); } }