페이지

13567번: Robot

https://www.acmicpc.net/problem/13567

$O(n)$

#include<cstdio>
const int fx[] = { 1,0,-1,0 }, fy[] = { 0,-1,0,1 };
int m, n, dir, x, y, a;
char op[5];
int main() {
    for (scanf("%d%d", &m, &n); n--;) {
        scanf("%s%d", op, &a);
        if (op[0] == 'M') x += fx[dir] * a, y += fy[dir] * a;
        else dir = (dir + 3 + 2 * a) % 4;
        if (x<0 || y<0 || x>m || y>m) {
            puts("-1");
            return 0;
        }
    }
    printf("%d %d", x, y);
    return 0;
}

댓글 없음 :

댓글 쓰기