单点时限: 2.0 sec
内存限制: 512 MB
这是一道交互题。
Cuber QQ 发现了 $n$ 个标号 $1$ 到 $n$ 的魔法石,第 $i$ 个魔法石中蕴藏着黑暗能量 $p_i$ ($1 \le p_i \le n$),不同的魔法石之间的能量不同。
为了拯救愚蠢的碳基生物,Cuber QQ 需要知道每个魔法石的能量是多少。伟大的 Cuber QQ 决定使用自己的身体进行能量测试。当Cuber QQ 把第 $x$ 个魔法石放在左手,第 $y$ 个魔法石放在右手时,它的头上就会出现 $p_x \bmod p_y$ 的值。
但是 Cuber QQ 的身体只能承受至多 $\lfloor \frac{6n}{5} \rfloor$ 测试。
你能帮助 Cuber QQ 找出每个魔法石的能量吗。
第一行:一个整数 $n$ $(13000 \le n \le 20000)$,表示魔法石的个数。
接下来,对于你的每组询问 ? x y
,交互器将会输出 $p_x \bmod p_y$ 的值,你需要将它输入。
如果你要提出一次询问,以 ? x y
$(1 \le x,y \le n)$ 的格式输出,表示你希望把第 $x$ 个魔法石放在 Cuber QQ 的左手,第 $y$ 个魔法石放在 Cuber QQ 的右手来询问 $p_x \bmod p_y$。
如果你确定了答案,请以 ! p_1 p_2 ... p_n
的格式输出。输出之后,请你立即结束程序。
请注意,你需要在每输出一行之后执行 flush 操作,否则你提交的程序有可能会被判定为 Idleness limit exceeded。适用于各种语言的 flush 函数如下:
fflush(stdout)
;System.out.flush()
;flush(output)
;sys.stdout.flush()
。5 1 3 2
? 1 2 ? 3 4 ? 2 5 ! 1 2 3 4 5
样例仅作为演示,不代表真实的数据范围。