luogu#P11607. [PA 2016] 寻踪 / Ciepło-zimno

    ID: 35503 远端评测题 4000ms 2048MiB 尝试: 0 已通过: 0 难度: 5 上传者: 标签>2016交互题Special JudgePA(波兰)

[PA 2016] 寻踪 / Ciepło-zimno

题目背景

译自 Potyczki Algorytmiczne 2016 R3 Ciepło-zimno [B] (CIE)。1s,256M\texttt{1s,256M}

原题为函数式交互题。为了方便不同语言的选手提交,改为 IO 交互题。

特殊的内存限制是交互库的限制导致的,和解法没有关系。

题目描述

这是一道交互题。

给定正常数 n,k,rn,k,r

nn 维空间中,有一个整点 P(p1,p2,,pn)P(p_1,p_2,\ldots,p_n),满足 pi[0,r]p_i\in [0,r]

你有 kk 次询问机会,第 ii 次询问给定一个整点 Vi(vi,1,vi,2,,vi,n)V_i(v_{i,1},v_{i,2},\ldots,v_{i,n}),回答为「dist(Vi,P)\operatorname{dist}(V_i,P) 是/否严格小于 dist(Vi1,P)\operatorname{dist}(V_{i-1},P)」。特别地i=1i=1 时,答案总为否。

注意,这里的 dist(A,B)\operatorname{dist}(A,B) 表示 A,BA,B 之间的 Chebyshev 距离。也就是,$\displaystyle \operatorname{dist}(A,B)=\max_{1\le i\le n} |A_i-B_i|$,这里 AiA_i 表示点 AA 坐标在第 ii 维上的分量。

利用询问找到点 PP

实现细节

注意:本题的 IO 量可能很大,请注意使用快速的 IO 方式。

读入三个正整数 n,k,rn,k,r。然后开始交互:

  • ?\texttt{?} vi,1v_{i,1} vi,2v_{i,2} \ldots vi,nv_{i,n}:询问「dist(Vi,P)\operatorname{dist}(V_i,P) 是/否严格小于 dist(Vi1,P)\operatorname{dist}(V_{i-1},P)」。
    • 回答为 00,表示答案为否;回答为 11,表示答案为是;回答为 1-1,表示你的程序已经被判为 WA,请立刻终止程序
      • 特别地,如果这是第一次询问,则(如果询问合法的话)回答总为 00
    • 你需要保证 vi,j[0,r]v_{i,j}\in [0,r],且 vi,jv_{i,j} 为整数。
    • 最多可以询问 kk 次。
  • !\texttt{!} p1p_{1} p2p_{2} \ldots pnp_{n}:回答 PP 的位置。
    • 回答后,你的程序需要立刻终止,不要输出多余内容。

每次询问或者回答之后,都要换行并刷新缓冲区。 以下是一些例子:

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

输入格式

见【实现细节】。

输出格式

见【实现细节】。

2 200 2

0

1

1

? 0 0

? 1 1

? 2 2

! 2 2

提示

  • 1n5001\le n\le 500
  • k100nk\ge 100\cdot n
  • 2r1092\le r\le 10^9