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) $,输出“=”

请你确定长度为 $ N $ 的排列 $ P $。
注意,输出最终答案时,不计入提问次数。

输入格式

本题为交互题。
首先,输入一个正整数 $ N $。

$ N $

之后你可以进行询问。每次询问,你需要输出如下格式,记得以换行结尾:

? $ Q_1 $ $ Q_2 $ …\dots $ Q_N $

若询问合法,裁判会返回一个字符 $ c $ 作为回应:

$ c $

如果询问格式不对、超过最大询问次数等,会返回 F,表示询问非法。

F

此时评测程序立即终止,并判定答案错误。

当你确定了排列 $ P $,请用如下格式输出答案,以换行结尾:

! $ P_1 $ $ P_2 $ …\dots $ 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测评打分。不知道怎么写?

首页