30 人解决,66 人已尝试。
42 份提交通过,共有 510 份提交。
6.2 EMB 奖励。
单点时限: 2.0 sec
内存限制: 256 MB
这是一个交互题。
ultmaster 男神给小迷妹们变了个神奇的魔术,ultmaster 给了 $2^n$ 个小迷妹们 $2^n$ 张标号分别为 $1$ 到 $2^n$ 的扑克牌。一人一张,每人拥有的牌都是不同的。我们假设她们拥有的牌分别为 $a_1,a_2,\ldots,a_{2^n}$,那么显然这是一个 $[2^n]$ 的排列。
每一轮 ultmaster 男神猜每一个小迷妹手上牌的值(必须在 $[1,2^n]$ 内)。小迷妹们会告诉 ultmaster 男神一共猜对了几张牌。机智的 ultmaster 男神保证自己至多 $1000$ 轮就可以猜出所有的牌,你能做到么?
P.S. 初始扑克牌顺序固定后不会随着 ultmaster 男神的猜的方式再有改变。
你的程序首先从交互器中读入一个整数 $n$ $(1 \leq n \leq 7)$。
随后你需要猜 $2^n$ 个整数,这些整数必须按照事先规定的顺序输出,分别为 $a_1^,a_2^,\ldots,a_{2^n}^$ ($1 \le a_i^ \le 2^n$),可以存在 $a_i^ = a_j^ (i \ne j)$。随后交互器会告诉你你的程序猜对了几个,也就是 $|{i | a_i = a_i^*}|$。
如果交互器返回了 $2^n$,那么就意味着你全部猜对啦,你可以退出程序。如果返回 $-1$,意味着你超出了次数上限,你也应该退出程序(不过你不退也不要紧,反正你过不了这个题)。
从交互器读入、输出使用标准输入输出流:stdin
, stdout
。请注意输出的缓冲区问题:在 C 语言中,请使用 fflush(stdout)
;在 C++ 中,可以使用 endl
或 flush
,在 Python 中,可以使用 stdout.flush()
。其他的语言就不再列举。
1 0 2
1 2 2 1
30 人解决,66 人已尝试。
42 份提交通过,共有 510 份提交。
6.2 EMB 奖励。