日期:2025年8月11日
ZeroJudge 題目連結:c315. I, ROBOT 前傳
解題想法
依序讀取測資並更新位置即可。
Python 程式碼
使用時間約為 27 ms,記憶體約為 3.3 MB,通過測試。
n = int(input())
dirs = ((0, 1), (1, 0), (0, -1), (-1, 0))
x, y = 0, 0
for _ in range(n):
a, b = map(int, input().split())
x += dirs[a][0]*b
y += dirs[a][1]*b
print(f"{x:d} {y:d}")
C++ 程式碼
使用時間約為 2 ms,記憶體約為 364 kB,通過測試。
#include <iostream>
using namespace std;
int main() {
ios::sync_with_stdio(0); cin.tie(0);
int n; cin >> n;
int dirs[4][2] = {{0, 1}, {1, 0}, {0, -1}, {-1, 0}};
int x = 0, y = 0;
for(int i=0; i<n; i++) {
int a, b; cin >> a >> b;
x += dirs[a][0]*b;
y += dirs[a][1]*b;
}
cout << x << " " << y << "\n";
return 0;
}
使用時間約為 2 ms,記憶體約為 92 kB,通過測試。
#include <cstdio>
using namespace std;
int main() {
int n; scanf("%d", &n);
int dirs[4][2] = {{0, 1}, {1, 0}, {0, -1}, {-1, 0}};
int x = 0, y = 0;
for(int i=0; i<n; i++) {
int a, b; scanf("%d %d", &a, &b);
x += dirs[a][0]*b;
y += dirs[a][1]*b;
}
printf("%d %d\n", x, y);
return 0;
}
沒有留言:
張貼留言