AT_tupc2022_l.Inversion High and Low
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
本题为交互题。
我们将 $ (1,2,\cdots,N) $ 的排列称为长度为 $ N $ 的排列。
给定一个长度为 $ N $ 的排列 $ P=(P_1, P_2, \cdots, P_N) $。
对于长度为 $ N $ 的两个排列 $ P,Q $,定义 $ \mathrm{dist}(P,Q) $ 如下:
- 使 $ P $ 与 $ Q $ 完全一致所需的最少相邻元素交换次数
你最多可以进行 $ 500 $ 次 询问,每次询问的形式如下:
-
指定一个长度为 $ N $ 的排列 $ Q $。裁判会依据以下规则给出一个字符作为回复:
- 如果这是第 $ 1 $ 次询问,则输出“
=”。 - 若上一次你询问的排列为 $ Q_1 $,本次为 $ Q_2 $,
根据 $ \mathrm{dist}(P,Q_1) $ 与 $ \mathrm{dist}(P,Q_2) $ 的大小关系,裁判会输出“+”、“-”或“=”:- 若 $ \mathrm{dist}(P,Q_1) < \mathrm{dist}(P,Q_2) $,输出“
+” - 若 $ \mathrm{dist}(P,Q_1) > \mathrm{dist}(P,Q_2) $,输出“
-” - 若 $ \mathrm{dist}(P,Q_1) = \mathrm{dist}(P,Q_2) $,输出“
=”
- 若 $ \mathrm{dist}(P,Q_1) < \mathrm{dist}(P,Q_2) $,输出“
- 如果这是第 $ 1 $ 次询问,则输出“
请你确定长度为 $ N $ 的排列 $ P $。
注意,输出最终答案时,不计入提问次数。
输入格式
本题为交互题。
首先,输入一个正整数 $ N $。
$ N $
之后你可以进行询问。每次询问,你需要输出如下格式,记得以换行结尾:
? $ Q_1 $ $ Q_2 $ … $ Q_N $
若询问合法,裁判会返回一个字符 $ c $ 作为回应:
$ c $
如果询问格式不对、超过最大询问次数等,会返回 F,表示询问非法。
F
此时评测程序立即终止,并判定答案错误。
当你确定了排列 $ P $,请用如下格式输出答案,以换行结尾:
! $ P_1 $ $ P_2 $ … $ P_N $
输出答案后,无论答案正误,评测程序均会结束。
输出格式
无
说明/提示
注意事项
- 每次输出后都要刷新标准输出缓冲区(flush)。
输入输出样例
以下为 $ N=4, P=(1,2,3,4) $ 的对话示例:
| 输入 | 输出 | 说明 |
|---|---|---|
4 |
首先给出整数 $ N $。 | |
? 1 2 4 3 |
指定 $ Q=(1,2,4,3) $ 作为询问。 | |
= |
第一次询问,一定给出 =。此时 $ <>athrm{dist}(P,Q) = 1 $。 |
|
? 1 4 2 3 |
指定 $ Q=(1,4,2,3) $ 作为询问。 | |
+ |
此时 $ <>athrm{dist}(P,Q) = 2 $,由于 $ <>athrm{dist}(P,Q_1) < <>athrm{dist}(P,Q_2) $,返回 +。 |
|
? 2 3 1 4 |
指定 $ Q=(2,3,1,4) $ 作为询问。 | |
= |
此时 $ <>athrm{dist}(P,Q) = 2 $,因 $ <>athrm{dist}(P,Q_1) = <>athrm{dist}(P,Q_2) $,返回 =。 |
|
! 1 2 3 4 |
输出排列 $ P $。实际 $ P=(1,2,3,4) $,因此判定正确。 |
提示
- $ 2 \leq N \leq 100 $
- $ N $ 为整数
- $ P $ 在评测开始前已确定
由 ChatGPT 5 翻译
输入解题思路,AI测评打分。不知道怎么写?