結果
問題 | No.48 ロボットの操縦 |
ユーザー | kichirb3 |
提出日時 | 2018-03-01 18:48:31 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 2 ms / 5,000 ms |
コード長 | 1,054 bytes |
コンパイル時間 | 659 ms |
コンパイル使用メモリ | 67,968 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-12-25 23:01:49 |
合計ジャッジ時間 | 1,545 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 25 |
ソースコード
// No.48 ロボットの操縦 // https://yukicoder.me/problems/no/48 // #include <iostream> #include <cmath> using namespace std; int solve(int X, int Y, int L); int main() { int X, Y, L; cin >> X >> Y >> L; int ans = solve(X, Y, L); cout << ans << endl; } int solve(int X, int Y, int L) { int ans = 0; bool x_changed = false; // x軸方向に移動するために向きを変える必要があったか bool y_changed = false; // y軸方向を南側に移動するために向きを変える必要があったか double dL = L; // y軸方向の移動に必要な命令回数 if (Y > 0) { ans += ceil(Y / dL); } else if (Y < 0 ) { y_changed = true; ans += ceil(abs(Y) / dL); } // x軸方向の移動に必要な命令回数 if (X != 0) { x_changed = true; ans += ceil(abs(X) / dL); } // 方向転換に必要な命令回数 if (y_changed) { ans += 2; } else if (x_changed) { ans += 1; } return ans; }