AT_utpc2024_h.Hidden Sequence Rotation
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
本题为交互式问题(你的程序将与评测程序通过标准输入输出进行交互)。
给定一个整数 N。评测程序隐藏了一个长度为 N 的序列 A=(A0,…,AN−1),其中每个元素是 1 到 105 之间的整数。请注意,下标从 0 开始。
对于整数 s=0,…,N−1 与 l=1,…,N,定义序列 A(s,l):
- 这是一个长度为 l 的序列,第 i=0,…,l−1 项为 A(s+i)modN。
你可以最多进行 20 次如下格式的询问:
- 你需要输出一个由整数对组成的序列 ((s0,l0),…,(sk−1,lk−1)),且满足
- 1≤k≤N
- 0≤si<N
- 1≤li≤N
- ∑i=0k−1li≤N
- 对于你的询问,评测程序会返回 i=0,…,k−1 中所有使得 A(si,li) 字典序最小的 i。即,设 Atmpmin=min0≤i<kA(si,li),那么返回集合 {i0,…,ik′−1}:={i∣0≤i<k,A(si,li)=Atmpmin}。
请通过上述操作,找出所有 s=0,…,N−1 使得 A(s,N) 的字典序最小。即找到集合 {s0,…,sn−1}:={s∣0≤s<N,A(s,N)=Amin},其中 Amin=min0≤s<NA(s,N)。
输入格式
本题为交互式问题(你的程序需通过标准输入输出与评测程序交互)。
首先,从标准输入读取 N。
N
此后,你可以进行询问,每次按下述格式输出:
? k s_0 l_0 s_1 l_1 ... s_{k-1} l_{k-1}
你的输出必须遵循题目的询问约束条件。
如果查询格式正确,评测程序会以如下格式返回本次询问的结果:
k' i_0 i_1 ... i_{k'-1}
且 0≤i0<⋯<ik′−1<k。
如果查询格式错误、询问次数超过20次或其它非法情况,评测程序会返回 -1:
-1
收到 -1 时,程序应立即退出。
当你得出答案后,请按如下格式输出:
! n s_0 s_1 ... s_{n-1}
其中 si 需为 0 到 N−1 之间互不相同的整数。
输出格式
见上文,需按题面所述格式进行标准输出。
说明/提示
注意事项
- 每次输出到标准输出后,请务必刷新输出流。否则有可能因输出未及时被评测程序收到而导致 TLE。
- 若你输出不合法、格式错误,或程序异常退出,判题结果不确定。
- 输出最终答案后(或收到
-1),请立即正常退出程序。否则,判题结果不确定。 - 注意不要输出多余的换行,否则也会被认定为格式错误。
- 序列 A 在整个交互过程中固定不变,不会根据你的询问自适应修改。
输入输出样例
以 N=6,A=(1,2,3,1,2,4) 为例:
输入 输出 说明
6
? 3
0 1
1 1
3 1
查询 $A(0, 1) = (1), A(1, 1) = (2), A(3, 1) = (1)$
2
0
2
$0$ 和 $2$ 号是最小的
? 2
0 3
3 3
查询 $A(0, 3) = (1, 2, 3), A(3, 3) = (1, 2, 4)$
1
0
只有第 $0$ 号最小
! 1
0
$A(s, N)$ 字典序最小的 $s$ 只有 $0$,输出结果
提示
- 所有输入均为整数。
- 1≤N≤105。
由 ChatGPT 5 翻译
输入解题思路,AI测评打分。不知道怎么写?