翻译
  • 板块UVA12740 Stone Age
  • 楼主rzh123
  • 当前回复3
  • 已保存回复3
  • 发布时间2021/8/2 10:24
  • 上次更新2023/11/4 12:15:27
查看原帖
翻译
237530
rzh123楼主2021/8/2 10:24

UVA12740 石器时代

题目描述

在石器时代,有一个大广场,人们快速进出这个广场,广场上的人形成部落。如果一个部落里的人数大于其他任何一个部落里的人数,我们就说这个部落是“危险的”。
现在请你判断是否有“危险的”部落。

这是一道交互题,使用IO交互。
你的程序应该向标准输出中输出命令,从标准输入中读取返回值。每输出一行,都应该刷新缓冲区

  • C: fflush(stdout)
  • C++: cout<<flush
  • Pascal: flush(output)
  • Java: System.out.flush()

本题只有一个测试点。你可以输出 Getjob 命令,读取一个整数 vvvv 的含义如下表所示:

vv的取值含义
00新事件:有一个人进入了广场。(人的编号按照 1,2,1,2,\cdots 排序)(第 nn 个进入的人编号为 nn
>0\gt 0新事件:编号为vv的人离开广场。
1-1判断有没有“危险的”部落,用 Answer 命令输出答案。
2-2测试点结束。

每一次 v=1v=-1 ,你都需要使用一个 Answer 命令;每个新事件之后,你可以使用 Query 命令获取信息。在v=1v=-1之后,新事件之前,你不应该使用 Query 命令,而应该立即用 Answer 作出回答。
各种命令的含义如下表所示:

命令含义
Getjob评测机会返回下一个 vv ,当 v=2v=2 时测试点结束。
Query i j评测机返回一个整数 sss=1s=1 表示编号为 ii 的人和编号为 jj 的人在同一个部落中,s=0s=0 表示他们不在同一个部落中。(iijj 可以是已经离开广场的人的编号)
Answer i输出判断有无“危险的”部落的结果。 i=0i=0 表示没有“危险的”部落,否则表示编号为 ii 的人所在的部落是“危险的”(编号为 ii 的人此时必须还在广场上)。对于这个命令,评测机不会返回任何东西。

输入格式

输出格式

输入输出样例

说明/提示

在每个新事件之后,你的程序最多可以使用 55Query 命令。

数据保证需要使用 Getjob 命令的次数不超过 5000050000

原题样例(右侧为程序输出,左侧为评测机返回内容):

					Getjob
0
					Getjob
0
					Query 1 2
0
					Getjob
-1
					Answer 0
					Getjob
0
					Query 2 3
1
					Getjob
-1
					Answer 2
					Getjob
2
					Getjob
-1
					Answer 0
					Getjob
1
					Getjob
-2

样例解释:一共有三个人,他们的部落编号分别为: 1,2,21,2,2

源码

2021/8/2 10:24
加载中...