Universal Cup Judging System

Universal Cup

Time Limit: 1 s Memory Limit: 1024 MB Total points: 100 Difficulty: [show] Interactive
Statistics

これはインタラクティブな問題です。

$\{1, 2, \dots, n\}$ の隠された順列 $p_1, p_2, \dots, p_n$ があります。あなたは、$p_l, \dots, p_r$ の転倒数の偶奇を尋ねることで、この順列を特定する必要があります。

クエリは "? l r" という形式で行うことができ、インタラクタは $(\sum_{l \le i < j \le r} [p_i > p_j]) \pmod 2$ を返します。ここで、$[p_i > p_j]$ は $p_i > p_j$ のときに $1$、$p_i \le p_j$ のときに $0$ となる値です。

インタラクション

まず、整数 $n$ ($1 \le n \le 2000$) を読み込む必要があります。

その後、$4 \times 10^4$ 回以下のクエリを行うことができます。クエリを行うには、"? l r" ($1 \le l \le r \le n$) を別の行に出力し、標準入力から応答を読み取ってください。

答えを出力するには、"! $p_1$ $p_2$ $\dots$ $p_n$" を別の行に出力してください。答えの出力は $4 \times 10^4$ 回のクエリ制限には含まれません。

その後、プログラムを終了してください。

クエリを出力した後は、必ず改行を出力し、出力をフラッシュしてください。これを行うには、C++ では fflush(stdout) または cout.flush() を、Java では System.out.flush() を、Pascal では flush(output) を、Python では stdout.flush() を使用してください。

順列はあらかじめ固定されていることが保証されています。

入出力例

入力 1

3
0
0
1

出力 1

? 1 2
? 1 3
? 2 3
! 2 3 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.