No.2085 Directed Complete Graph
タグ : / 解いたユーザー数 30
作問者 : だれ / テスター : niuez kaikey ぷら
問題文
この問題はインタラクティブな問題です。
$N$ 頂点からなる有向グラフが与えられます。頂点には $1$ から $N$ の番号が振られています。
このグラフには $\frac{N(N-1)}{2}$ 本の長さ $1$ の辺があり、以下の性質を満たしています。
あなたは以下の質問を $4000$ 回まで行うことができます。
このグラフの最長パス(同じ頂点を $2$ 度通らない)を $1$ つ見つけてください。
入出力
まず、頂点数 $N$ が標準入力に与えられます。
$N$
次に、最長パスが見つかるまで質問を繰り返してください。質問は以下の形式で標準出力に出力してください。
$?$ $a$ $b$
ただし $1\leq a, b\leq N, a\neq b$ を満たしている必要があります。また、最後に改行してください。
この質問に対する応答は標準入力に以下の形式で与えられます。
$T$
ここで $T=0$ または $T=1$ であり、$T=1$ なら $a\to b$ の辺が存在することを、$T=0$ なら存在しないことを表します。
ただし質問の回数が $4000$ を超えたり、質問の制約が守られていない場合、ジャッジは $T=-1$ を返しただちに終了します。
最長パスを発見した場合、以下の形式で報告してください。
$!$ $L$ $C_0$ $C_1$ $\ldots$ $C_L$
ここで $L$ は最長パスの長さであり、$C_i (0\leq i \leq L)$ は(この順に)パスが通る頂点を表します。(パスの長さが $L$ なので、通る頂点は $L+1$ 個であることに注意してください。)
ここで以下の制約が満たされている必要があります。
考えられる答えが複数存在する場合、どれを出力しても正解と判定されます。
注意
各出力後は改行し、必ず flush を行ってください。また質問の結果を必ず受け取ってください。
答えを出力したあとは、すぐにプログラムを終了してください。
制約
サンプル
サンプル1
入力
3 1 1 1
出力
? 1 2 ? 2 3 ? 3 1 ! 2 1 2 3
与えられたグラフには $1\rightarrow 2\rightarrow 3$ のパスがあり、このパスの長さは $2$ です。長さ $3$ 以上のパスはないので、これを出力します。
$2\rightarrow 3\rightarrow 1$ や $3\rightarrow 1\rightarrow 2$ というパスを出力しても正解となります。
提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。