#P7191. [Ural1624]Go out of here!
[Ural1624]Go out of here!
题目描述
两名侦察兵在执行绝密任务时被抓进了监狱。
监狱是一个 的矩形网格。相邻两个格子之间要么有门、可以通过,要么有墙、无法通过。监狱最外围一定全部是墙。
侦察兵暂时失明,而且他们不知道自己在监狱中的绝对坐标。两人之间也无法互相通信,即使处于同一个格子里也无法知道对方的位置。
幸运的是,他们体内都有发射器,可以向总部报告。
总部要求两名侦察兵轮流执行操作:尝试向北、南、东、西中的某个方向移动一步,并报告:
- 尝试的方向;
- 移动是否成功。
如果移动成功,侦察兵进入相邻格;如果失败,则留在原地。
奇数编号的报告来自第一名侦察兵,偶数编号的报告来自第二名侦察兵。
现在给出所有报告。你需要判断:在处理多少条报告之后,总部第一次能够唯一确定两名侦察兵的绝对坐标。
此外,报告本身也可能互相矛盾。若存在矛盾,必须输出第一条导致矛盾的报告编号;即使在更早时刻已经能够唯一定位两名侦察兵,也仍应优先报告后续出现的错误。
输入格式
第一行包含三个整数:
其中:
- 为监狱东西方向的格子数;
- 为监狱南北方向的格子数;
- 为报告数量。
满足:
接下来 行,每行是一条长度为 2 的报告。
第一个字符是:
N:向北;S:向南;E:向东;W:向西。
第二个字符是:
+:移动成功;-:移动失败。
奇数编号报告属于第一名侦察兵,偶数编号报告属于第二名侦察兵。
输出格式
共有三种情况。
1. 可以唯一确定两名侦察兵的位置
输出:
The scouts are safe at step number X
其中 是第一次能够唯一确定两人坐标时的报告编号。
2. 所有报告都没有矛盾,但仍无法唯一确定坐标
输出:
There is not enough data
3. 报告中存在矛盾
输出:
A mistake has been made at step number X
其中 是第一条与之前信息不相容的报告编号。
注意:即使在第 条错误报告出现之前,侦察兵的位置已经能够唯一确定,也仍然应该输出错误信息。
样例 1
2 1 4
E+
W-
N-
S-
The scouts are safe at step number 2
样例 2
2 1 4
N-
W-
N-
S-
There is not enough data
样例 3
2 1 4
N-
W-
N-
S+
A mistake has been made at step number 4