luogu#P7824. 「RdOI R3」毒水
「RdOI R3」毒水
题目描述
这是一道 IO 交互题。
现在你面前有 瓶水,从 编号,其中有 瓶水有毒,你可以用一些小白鼠来进行判断。
但是你找的小白鼠中有且仅有一只变异鼠,如果它喝的水中有毒水,那么它不会死亡。否则它会在 秒内死亡。其它小白鼠如果喝了毒水将在 秒内死亡,否则不会死亡。
你需要在一分钟内找出这瓶毒水,因为测试已经花了 秒,所以你的代码只能运行 秒。
交互方式
首先你需要从标准输入读取两个整数 ,,表示水的数量,以及你最多能找到的小白鼠个数。
若你需要 只小白鼠,你需要向标准输出打印 行,除了最后一行,每一行的格式为:1 m B1 B2 ... Bm
,表示你找到一只小白鼠并让它喝 号, 号,, 号这 瓶中的水。你需要在最后写上一行:2
,随后清空缓冲区,表示你不需要更多的小白鼠了。
下面是一些语言的刷新缓冲区操作:
- C++:
fflush(stdout)
或cout.flush()
。 - C:
fflush(stdout)
。 - Java:
System.out.flush()
。 - Python:
stdout.flush()
。 - Pascal:
flush(output)
。 - 其他语言:请参考对应语言的帮助文档。
当然,如果 ,交互库会返回 WA
、RE
、UKE
或 TLE
,同时该测试点不得分。
然后你需要从标准输入读取 个整数 。若 代表第 号小白鼠已死亡,否则代表第 号小白鼠仍存活。
最后你需要从标准输出打印一个整数,表示毒水的编号。
注意,请避免你的程序让小白鼠喝相同编号的水,交互库将返回 Repeated poison.
输入格式
见交互方式。
输出格式
见交互方式。
4 12
1 0 1 1 1 1 1 1 1 0 1 1
1 1 1
1 1 2
1 1 3
1 1 4
1 1 1
1 1 2
1 1 3
1 1 4
1 1 1
1 1 2
1 1 3
1 1 4
2
2
提示
样例说明
毒水的编号为 ,且第 次和第 次均为让小白鼠喝下 号毒水,故这两次操作返回的结果为 。其他操作由于让小白鼠喝的不是毒水,返回的结果为 。
样例仅为理解交互方式使用,可能不符合逻辑。
数据范围
本题采用捆绑测试。
注意:本题不存在一个 subtask 包含其他所有 subtask。
subtask | 分值 | ||
---|---|---|---|
注意
只有你向交互器发送 操作时,交互器才会将你先前的 操作的答案告诉你。也就是说,你不能在执行一次 操作后立刻得到这次操作的返回结果。