問題一覧 > 通常問題

No.2967 Nana's Plus Permutation Game

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / リアクティブ問題 (詳しくはこちら
タグ : / 解いたユーザー数 13
作問者 : ねしんねしん / テスター : 遭難者遭難者
1 ProblemId : 11519 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2024-11-05 11:14:56

ストーリー

ナナが足し算を習い、結果を指し示してくれるようになったので、これで順列当てゲームを行いましょう。

順列の中にないと、少し不機嫌になりますがそこはしょうがないので気にしなくていいです。

ただし、質問回数が多いと疲れてしまうので、最小限にしてください。

問題文

要素数が $N$ 個の $(1,2,\cdots,N)$ の順列 $P=(P_1,P_2,\cdots,P_{N})$ があります。$N$ は与えられますが、$P$ は与えられずジャッジが隠し持っています。

あなたはジャッジに対して以下のクエリを送ることが出来ます。

  • $1$ 以上 $N$ 以下の整数 $i,j$ を選ぶ。$P_i+P_j \leq N$ なら $P_i+P_j=P_k$ となる整数 $k$ が、そうでなければ、$-1$ が与えられる。

  • このクエリは $2N$ 回まで使用することが出来ます。$P$ を求めてください。

    制約

  • $2 \leq N \leq 5000$
  • $P$ は $(1,2,\cdots,N)$ の順列
  • $P$ は各テストケースごとに固定である。質問クエリによって $P$ が変動することはない。
  • 入力はすべて整数
  • 入出力

    まず $N$ がジャッジ側から渡されます。

    $N$

    そのあと、あなたは $2N$ 回まで以下の形でクエリを送ることが出来ます。$1 \leq i,j \leq N$ を満たす必要があります。
    $1$ $i$ $j$

    ジャッジ側の返答としてクエリに対する答えが与えられます。$P_i+P_j \leq N$ なら $P_i+P_j=P_k$ となる整数 $k$ が、そうでなければ、$-1$ が与えられます。
    $k$

    答えを出力するときは以下の様に出力してください。出力した後は直ちにプログラムを終了してください。
    $2$ $P_1$ $P_2$ $\cdots$ $P_{N}$

    注意点

  • 各出力のたびに末尾改行と出力の flush をしてください。そうしなかった場合、ジャッジ結果がTLEやWAになる可能性があります。
  • 不正な出力や動作に対するジャッジは不定です。余分な空白や改行などを出力しないよう注意してください。
  • $P$ を出力した場合、すぐにプログラムを修正してください。終了しなければジャッジ結果は不定です。
  • 解答の出力はクエリ回数に含まれません。
  • サンプル

    以下は一例です。
    プログラム側の出力ジャッジ側の出力説明
    4まず、始めに $N$ が渡されます。このとき、ジャッジ側では $P=(1,4,2,3)$ を隠し持っています。
    1 1 3クエリとして $i=1,j=3$ をジャッジ側に送りました。
    4 $P_1+P_3=3=P_4$ なので $4$ が与えられます。
    1 1 4クエリとして $i=1,j=4$ をジャッジ側に送りました。
    2 $P_1+P_4=4=P_2$ なので $2$ が与えられます。
    1 4 4クエリとして $i=4,j=4$ をジャッジ側に送りました。
    -1$P_4+P_4=6>4$ なので $-1$ が与えられます。
    2 1 4 2 3答えとして順列 $(1,4,2,3)$ を出力しました。これは $P$ と一致するので正解となります。

    提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。