QOJ.ac

QOJ

Limite de temps : 5 s Limite de mémoire : 256 MB Points totaux : 100 Interactif

#1464. 交互式算法

Statistiques

这是一个交互式问题。

我有一个隐藏的排列 $p_1, p_2, \dots, p_n$,你需要猜出它。

你可以进行一些查询。在一次查询中,你告诉我一个长度为 $n$ 的排列 $q_1, q_2, \dots, q_n$,我会回复你排列 $p$ 和 $q$ 的相似度。

两个排列的相似度定义如下:设 $w_1, w_2, \dots, w_n$ 为一个排列,定义 $N(w)$ 为 $w$ 中相邻元素组成的无序对集合。例如,$N([4, 1, 3, 2]) = \{\{1, 4\}, \{1, 3\}, \{2, 3\}\}$。因此,$p$ 和 $q$ 的相似度即为 $N(p) \cap N(q)$ 的大小。

你最多可以进行 $25\,000$ 次查询。请注意,世界上没有任何算法能区分 $p$ 和 $p$ 的反转序列,因此这两个排列都会被视为正确答案。

这一次我不会捉弄你,也不会改变隐藏的排列。虽然我本可以这样做。你真的应该感到庆幸。

输入格式

首先,你将获得一行,包含一个整数 $n$ ($2 \le n \le 400$),即隐藏排列的大小。

输出格式

当你确定了隐藏排列后,打印一个感叹号 “!”,然后打印 $n$ 个整数 $p_1, p_2, \dots, p_n$,或者 $p_n, p_{n-1}, \dots, p_1$。

这不计入查询次数限制。

交互

进行查询时,打印一个问号 “?”,然后在一行中打印 $n$ 个不同的整数 $q_1, q_2, \dots, q_n$ ($1 \le q_i \le n$)。

作为响应,读取一行中的一个整数 $s$ ($0 \le s < n$),即 $p$ 和 $q$ 的相似度。

别忘了在每次查询后打印换行符并刷新输出。你最多可以进行 $25\,000$ 次查询。

样例

样例输入 1

5
1
3
4

样例输出 1

? 1 2 3 4 5
? 2 4 3 5 1
? 3 4 2 5 1
! 3 4 2 5 1

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.