#P1045. 秘密
秘密
题目背景
晓山瑞希有秘密。
题目描述
这是一道交互题。
晓山瑞希心里有一个 正整数 ,你的目标是猜出这个正整数。
晓山瑞希心里还有一个集合 ,初始时为空。每次操作,你可以向集合中加入一个之前不存在的 正整数 或删除一个已经存在的数。晓山瑞希会在每次操作后告诉你,现在是否存在两个数 使得 。
交互格式
你的代码需要包含头文件 grader.h
。
你需要实现一个函数 int guess();
,该函数可以调用以下两个函数,并返回你猜的正整数 :
bool add(int x);
:向集合 中加入一个正整数 。你需要保证 没有出现过,并且 。当其返回 时表示操作后存在两个数 使得 ,否则不存在。bool del(int x);
:从集合 中删除一个正整数 。你需要保证 。当其返回 时表示操作后存在两个数 使得 ,否则不存在。
在 guess()
函数返回时不要求集合 为空。
在单个测试点中有多组数据,记得在每次调用 guess()
时清空数组。
评分规则
本题只有一个测试点。保证 ,数据组数小于等于 。
如果在这一个测试点的任何一组数据上你回答了错误的答案,或是进行了错误的函数调用,你将得到 分。
记你在单组数据上调用的 add
和 del
次数之和为 ,记 为该测试点所有数据的 的最大值,那么你的得分由以下函数决定:
样例交互库
【输入格式】第一行一个整数 ,表示数据组数。接下来 行,每行一个整数 。
【输出格式】交互库最后会输出一个整数 ,表示该测试点所有数据调用 add
和 del
次数之和的最大值。如果你猜错了,会输出 1000000000
。
交互库使用说明:将 grader.h
放在和你的代码同一个目录下,然后在你的代码中包含 #include "grader.h"
,即可直接编译运行你的代码。
时空限制
保证你至少可以使用 1s 时间和 256MB 内存。