Universal Cup Judging System

Universal Cup

Time Limit: 3 s Memory Limit: 2048 MB Total points: 100 Difficulty: [show] Interactive Hackable ✓
Statistics

これはインタラクティブな問題です。出力するたびに出力バッファをフラッシュしてください。次の方法を利用できます。

  • C/C++ では fflush(stdout) または cout.flush();
  • Java および Kotlin では System.out.flush();
  • Python では sys.stdout.flush();
  • その他の言語についてはドキュメントを参照してください。

Little Cyan Fish は、$0$ から $n$ までの整数からなる長さ $n+1$ の秘密の順列 $p_0,p_1,\ldots,p_n$ を持っています。彼はあなたにこの秘密の順列を当ててほしいと考えています。そのため、Little Cyan Fish は以下の形式の質問を $1024$ 回以下行うことを許可します。

  • ? i j:$p_k=|p_i-p_j|$ を満たす添字 $k$($0\le k\le n$)を取得します。

もちろん、質問が有効となるためには、$i$ と $j$ がともに $[0,n]$ 内の整数であることを保証する必要があります。例えば、$p_0=2,p_1=0,p_2=1$ のとき、質問 ? 0 2 の応答は添字 $2$ です。これは $|p_0-p_2|=|2-1|=1=p_2$ だからです。

Little Cyan Fish は、あなたに順列を求める戦略を考えてほしいと思っています。もちろん、Little Cyan Fish はあなたが簡単にゲームに勝つことを望んでいません。そのため、彼はあなたを引っ掛けるために順列 $p$ を適応的に変更します(詳細は「インタラクション」を参照)。

入力

複数のテストケースがあります。入力の最初の行には、テストケース数を表す整数 $T$($1\le T\le100$)が与えられます。

各テストケースについて、入力の最初の行には整数 $n$($1\le n\le1000$)が与えられます。その後、インタラクションが始まります。

インタラクション

質問するには、次の形式で $1$ 行出力してください。

$$?\ i\ j$$

ここで、$i$ と $j$ は $0$ 以上 $n$ 以下の整数です。質問回数は $1024$ 回以下でなければなりません。応答として、$p_k=|p_i-p_j|$ を満たす整数 $k$ が与えられます。

答えを報告するには、次の形式で $1$ 行出力してください。

$$!\ p_0\ p_1\ \ldots\ p_n$$

ここで、$p$ は報告したい順列です。

質問の出力後または答えの報告後には、必ず改行を出力し、出力ストリームをフラッシュしてください。

この問題のインタラクタは適応的です。つまり、それまでの質問と矛盾しない限り、あなたの質問に応じて順列 $p$ が変化する可能性があります。

入出力例

インタラクション例 1

読み込み:

1
3

書き込み:

? 2 2

読み込み:

1

書き込み:

? 0 3

読み込み:

3

書き込み:

! 2 0 3 1

テストツール: 参加者が解法を開発・テストするためのツールが提供されています。添付ファイルからダウンロードできます。-h オプションを付けて実行すると、使い方が表示されるはずです。このツールは、一部のテスト状況と、実際のジャッジプログラムの一部の機能だけを実装しています。

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.