1691: 贪吃蛇
内存限制:128 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:81
解决:2
题目描述
贪吃蛇游戏的玩法是:在一个 N * N 的棋盘上,分布着一些果子,一条贪吃蛇头西尾东趴在棋盘上,从游戏开始,贪吃蛇就以单位时间 1 格的速度不停地向前爬行,玩家可以通过方向键改变贪吃蛇的方向。当贪吃蛇吃到一个果子时,长度就会加 1,如果贪吃蛇吃完所有的果子,或撞到棋盘边缘或自己的身上,游戏就结束了。
注意:
1、贪吃蛇在爬行的时候,是先收起蛇尾,再探出蛇头。所以如果蛇的长度为 1 或 2 的话,是可以 180 度掉头的。而如果蛇的长度大于 2,玩家试图 180 度掉头,贪吃蛇会撞到自己的。
2、蛇吃到果子时长度会加 1,也就是说,吃到果子时,不会收起蛇尾。
输入
第一行为计算用例的个数 K。从第二行开始是 K 个计算用例。
每个计算用例由四行数据构成,第一行为两个空格隔开的整数 N M,N 是棋盘的大小,M 是果子的个数。10 ≤ N ≤ 100,1 ≤ M ≤ 1000。
第二行是 2 * M 个空格隔开的整数,每一对整数 X Y 表示一个果子的坐标,0 ≤ X, Y ≤ N-1。
第三行为三个空格隔开的整数 X Y L,表示贪吃蛇头部的起始位置和长度。0 ≤ X, Y ≤ N-1,1 ≤ L ≤ 10。
最后一行是一组空格隔开的整数,第一个整数 R(10 ≤ R ≤ 1000),表示玩家的操作步数,后面 2 * R 个整数,每一对整数 T E,T 表示按下方向键的时间,E 表示按下的方向键(1 上,2 下,3 左,4 右),并按操作时间顺序排列。注意,游戏可能在所有操作执行完之前结束。游戏时间从 1 开始计时。
输出
对每一个计算用例,输出贪吃蛇的蛇头在棋盘上的最后位置坐标(X Y)和贪吃蛇吃到的果子的个数。
样例输入 复制
2
10 1
5 0
5 5 3
1 1 1
10 1
0 0
5 5 2
2 1 1 6 3
样例输出 复制
5 0 1
0 0 1