加速移动游戏
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
题目描述
在一场虚拟现实游戏中,玩家初始位于坐标原点 。游戏中玩家需要根据指令移动,指令包括向上移动(1),向下移动(2),向左移动(3),向右移动(4)。每次玩家接受到一个移动指令,玩家将向指定方向移动一格。然而,如果玩家的移动结果使他的坐标落在任意对角线 或 上,此时玩家将获得加速效果,即额外再移动一格。最终,玩家需要报告他的终止坐标。
关于对角线:
例如,下面的坐标在对角线上:
- (0, 0), (1, 1), (2, 2)...,
- (0, 0), (-1, -1), (-2, -2)...
- (0, 0), (-1, 1), (-2, 2)...
- (0, 0), (1, -1), (2, -2)...,
对于坐标 ,如果 两数的绝对值相等,那么这个坐标在对角线上。
关于移动: 一开始玩家的的位置在(0, 0)。假设用x代表玩家的横坐标,y代表玩家的纵坐标,用变量x和y代表玩家的位置。
那么一开始x和y都为0.
- 如果输入1,则向上,纵坐标y需要加1.
- 如果输入2,则向下,纵坐标y需要减1.
- 如果输入3,则向左,横坐标x需要减1.
- 如果输入4,则向右,横坐标x需要加1.
输入格式
首先输入一个整数 ,表示有 组数据。接下来的 行,每行包含一个整数,表示移动方向:1代表向上,2代表向下,3代表向左,4代表向右。
输出格式
输出一行,包含两个整数 ,表示玩家最终的坐标 。
样例数据
5
1
4
3
1
1
0 3
5
4
1
3
2
1
0 2
6
4
4
1
2
1
3
0 1
样例解释
在第一个样例中,玩家首次向上移动到 ,然后向右移动到 ,因为 在 对角线上,所以玩家再向右移动一格到 。接着向左移动到 ,此时在 对角线上,再向左移动一格到 。最后向上移动两次到 。
在第二个样例中,移动的顺序为:(0, 0) => (1, 0) => (1, 1)(在对角线上,额外向上到 (1,2))=> (0,2) => (0,1) => (0,2) 。
在第三个样例中,玩家最初向右移动一格到 ,继续向右移动到 ,然后向上移动到 ,接着向下回到 ,再次向上移动到 ,最后向左移动一格到 ,此时在 对角线上,触发加速,再向左移动到 。
数据范围
- 每个指令是1, 2, 3, 4中的一个。
- 输出的坐标绝对值不会超过 。