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