#arc154d. [arc154_d]A + B > C ?

[arc154_d]A + B > C ?

問題文

PCT 君は (1,2,dots,N)(1,2,\\dots,N) の順列 (P1,P2,dots,PN)(P_1,P_2,\\dots,P_N) を持っています。あなたには NN のみが伝えられます。

あなたは PCT 君に以下の質問を 2500025000 回以下行うことができます。

  • 1lei,j,kleN1 \\le i,j,k \\le N を満たす整数の組 (i,j,k)(i,j,k)11 個指定し、Pi+Pj>PkP_i + P_j > P_k かどうかを聞く。

P1,P2,dots,PNP_1,P_2,\\dots,P_N を全て求めてください。

制約

  • 1leNle20001 \\le N \\le 2000
  • PP はプログラムとジャッジの対話の開始前に決定される。

入出力

この問題はインタラクティブな問題(あなたの作成したプログラムとジャッジプログラムが入出力を介して対話を行う形式の問題)である。

まず、あなたのプログラムに標準入力から順列の長さ NN が与えられる。

NN

その後、あなたは質問を行うことが出来る。 質問は標準出力に以下の形式で出力せよ。(末尾に改行を入れること。)

? ii jj kk

質問が正当な場合、その質問の答え ansans が標準入力から与えられる。

ansans

ここで、ansansYes または No である。

質問のフォーマットが間違っている、または質問を規定の回数より多く行ったという理由で質問が不正と判断された場合、-1 が標準入力から与えられる。

-1

この時、提出はすでに不正解と判定されている。ジャッジプログラムはこの時点で対話を終了するため、あなたのプログラムも終了するのが望ましい。

P1,P2,dots,PNP_1,P_2,\\dots,P_N が全て分かったら、標準出力に以下の形式で出力せよ。(末尾に改行を入れること。)

! P1P_1 P2P_2 dots\\dots PNP_N

ジャッジ

  • 出力を行うたびに、末尾に改行を入れて標準出力を flush せよ。そうしなかった場合、ジャッジ結果が TLE