結果
問題 | No.48 ロボットの操縦 |
ユーザー | tsunabit |
提出日時 | 2018-04-08 23:42:23 |
言語 | Java21 (openjdk 21) |
結果 |
WA
|
実行時間 | - |
コード長 | 2,761 bytes |
コンパイル時間 | 3,319 ms |
コンパイル使用メモリ | 74,924 KB |
実行使用メモリ | 54,360 KB |
最終ジャッジ日時 | 2024-06-26 20:29:26 |
合計ジャッジ時間 | 8,364 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 132 ms
54,000 KB |
testcase_01 | AC | 127 ms
54,012 KB |
testcase_02 | AC | 115 ms
52,844 KB |
testcase_03 | AC | 1,075 ms
54,160 KB |
testcase_04 | AC | 131 ms
53,992 KB |
testcase_05 | AC | 130 ms
53,912 KB |
testcase_06 | WA | - |
testcase_07 | AC | 136 ms
54,104 KB |
testcase_08 | AC | 130 ms
54,340 KB |
testcase_09 | AC | 127 ms
54,104 KB |
testcase_10 | AC | 129 ms
54,360 KB |
testcase_11 | AC | 129 ms
54,244 KB |
testcase_12 | AC | 137 ms
54,012 KB |
testcase_13 | AC | 119 ms
52,896 KB |
testcase_14 | AC | 129 ms
54,004 KB |
testcase_15 | AC | 134 ms
53,864 KB |
testcase_16 | AC | 114 ms
52,972 KB |
testcase_17 | AC | 115 ms
53,012 KB |
testcase_18 | AC | 131 ms
54,208 KB |
testcase_19 | AC | 125 ms
53,860 KB |
testcase_20 | AC | 125 ms
54,108 KB |
testcase_21 | AC | 124 ms
54,100 KB |
testcase_22 | AC | 131 ms
54,232 KB |
testcase_23 | AC | 124 ms
54,156 KB |
testcase_24 | AC | 131 ms
54,076 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 += 2; // System.out.println("Z"); }else if(X != 0 && Y < 0) { count += 2; // System.out.println("ZZ"); }else if(X != 0 && Y > 0) { count += 1; // System.out.println("ZZZ"); }else { // Nothing } System.out.println(count); } }