#A5. Interactive Problem Test 1: The Battle
Interactive Problem Test 1: The Battle
题目背景
你是 U 国一名普普通通的飞行员。这天早上,你接到了一项艰巨的任务:飞往 J 国上空,对 G 城实施轰炸。
你将永远记住这个不平凡的日子:公元 年 月 日。
很快,你圆满地完成了这一任务。然而,上级又向你下了额外命令:对 G 城近郊再次实施轰炸,彻底摧毁 J 国军队的司令部。
题目描述
G 城近郊是一个 的网格,而 J 国军队的司令部将会占据 的位置(保证整个司令部均在 的网格内),其中正中间的那一格是总司令的办公室——只要炸掉总司令的办公室,整个司令部就被摧毁了。不幸的是,这个司令部建在地下,你无法得知它的位置。
你的飞机上还剩 枚炸弹,每枚炸弹可以对其中一格进行轰炸。被轰炸的格子将会塌陷,此时你可以得知这一格的具体情况。也就是说,每次轰炸后,你将得到以下三条信息中的一条:
- 被轰炸的格子不是总司令的办公室,并且不属于司令部的一部分;
- 被轰炸的格子不是总司令的办公室,但属于司令部的一部分;
- 被轰炸的格子是总司令的办公室,轰炸成功。
请设计一个算法,对每次轰炸的位置进行规划,使得你能顺利完成任务。
交互方式
本题为交互题。
在你输出一行后,请使用 fflush(stdout);
/ cout.flush();
/ cout << endl;
清空缓冲区。
在交互开始前,你将读入一个正整数 ,表示该测试点的数据组数。
接下来,对于每组数据,你将进行 轮交互:
- 首先,你需要输出两个正整数 ,表示你这一次轰炸的位置为 。
- 接下来,你需要读入一个非负整数 表示轰炸结果:
- :被轰炸的格子不是总司令的办公室,并且不属于司令部的一部分;
- :被轰炸的格子不是总司令的办公室,但属于司令部的一部分;
- :被轰炸的格子是总司令的办公室,轰炸成功。
- 当以下两个事件中的某一个发生时,你将结束本组数据的交互,并开始下一组数据的交互:
- 读入的轰炸结果为 ;
- 在该组数据中,你已经进行了 轮交互。
如果你在每组数据中都成功地进行了轰炸,那么你将 AC 该测试点。
样例
[I] 3
[N] Interaction started. There are 3 testcases in this test.
[N] Testcase #1 started.
[N] Round #1:
[O] 1 1
[I] 0
[N] (1, 1) Exploded: Missed.
[N] Round #2:
[O] 4 4
[I] 0
[N] (4, 4) Exploded: Missed.
[N] Round #3:
[O] 7 7
[I] 0
[N] (7, 7) Exploded: Missed.
[N] Round #4:
[O] 4 7
[I] 1
[N] (4, 7) Exploded: Hit headquarter.
[N] Round #5:
[O] 3 7
[I] 2
[N] (3, 7) Exploded: Destroyed commander's office.
[N] Testcase #1 passed: Mission completed using 5 bombs.
[N] Testcase #2 started.
[N] Round #1:
[O] 1 1
[I] 0
[N] (1, 1) Exploded: Missed.
[N] Round #2:
[O] 4 1
[I] 1
[N] (4, 1) Exploded: Hit headquarter.
[N] Round #3:
[O] 6 1
[I] 1
[N] (6, 1) Exploded: Hit headquarter.
[N] Round #4:
[O] 5 2
[I] 2
[N] (5, 2) Exploded: Destroyed commander's office.
[N] Testcase #2 passed: Mission completed using 4 bombs.
[N] Testcase #3 started.
[N] Round #1:
[O] 6 6
[I] 2
[N] (6, 6) Exploded: Destroyed commander's office.
[N] Testcase #3 passed: Mission completed using 1 bomb.
[N] Interaction ended. All testcases passed. You got an accepted!
提示
在样例中,[I]
是你读入的内容,[O]
是你输出的内容,[N]
是注释(实际交互中不会出现)。