#P0598. 贪吃蛇
贪吃蛇
题目描述
小明正在开发一个贪吃蛇游戏,他需要模拟蛇的移动逻辑。在这个游戏中,蛇的身体由 个连续的格子组成,每个格子在二维网格中都有一个位置。
蛇的头部编号为 ,尾部编号为 。初始时,蛇排列在网格上的 轴(水平方向是 轴,垂直方向是 轴):
第 个身体段初始位于坐标 ,头部在 ,尾部在 。
蛇的移动规则如下:每次移动,蛇的头部会向特定方向移动一格,而其他身体段则会移动到前一个身体段之前所在的位置。
游戏记录了一连串操作,包括两种类型:
移动操作 1 C:控制蛇的头部向方向 移动一格。方向 可以是:
(右): 坐标增加 ;
(左): 坐标减少 ;
(上): 坐标增加 ;
(下): 坐标减少 ;
移动后,每个身体段会移动到它前一个身体段移动前的位置。
查询操作 2 p:查询第 个身体段当前所在的位置坐标 。
请你帮助小明编写程序,处理所有操作,并回答每个查询操作。
输入格式
第一行包含两个整数 和 ,分别表示蛇的身体长度和操作数量。
接下来 行,每行描述一个操作,格式如上所述。
输出格式
对于每个查询操作,输出一行,包含两个整数 和 ,表示查询的身体段的坐标。
样例
5 9
2 3
1 U
2 3
1 R
1 D
2 3
1 L
2 1
2 5
3 0
2 0
1 1
1 0
1 0
提示
样例解释
初始时,蛇的身体在 上排成一条线。
第一条查询 2 3,第三节是 ;
向上移动后,新的头部是 ,原第 节变成第 节,以此类推;
之后查询 2 3 时,该节变成了之前的 ,以此类推。
数据范围
保证操作合法。