問題一覧 > ネタ問題

No.3109 GCD between Permutations

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / リアクティブ問題 (詳しくはこちら
タグ : / 解いたユーザー数 16
作問者 : KumaTachiRenKumaTachiRen / テスター : 👑 p-adicp-adic
1 ProblemId : 10742 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2024-03-10 16:59:31

はじめに

この問題の元となった問題は https://yukicoder.me/problems/no/2496 ですが,元問題の解法を知らなくてもこの問題を解く上では影響はありません.

問題文

この問題はインタラクティブ問題です.

正整数 $N$ が与えられます.また,$(1,2,\dots,N)$ の順列 $A=(A_1,A_2,\dots,A_N),B=(B_1,B_2,\dots,B_N)$ が隠されています. あなたは次の質問を $3N$ 回まで行うことができます.

  • 質問:$1$ 以上 $N$ 以下の整数 $i,j$ を選び,$\gcd(A_i,B_j)$ の値を尋ねる.
$A,B$ を特定してください.

制約

  • $1\leq N\leq 1000$
  • 入力はすべて整数

入出力

最初に,標準入力から順列の長さ $N$ が与えられます.

$N$

次に,$A,B$ を特定できるまで質問を繰り返してください.質問は次の形式で標準出力に出力してください.

? $i$ $j$

質問に対する答えは,標準入力から次の形式で与えられます.

$X$

ここで $X=\gcd(A_i,B_j)$ です.

$A,B$ が特定できたら,それを以下の形式で標準出力に出力してください(1行で出力してください).その後,ただちにプログラムを終了してください.

! $A_1$ $A_2$ $\dots$ $A_N$ $B_1$ $B_2$ $\dots$ $B_N$

注意点

  • 出力のたびに,末尾に改行を入れた上で標準出力を flush してください.しなかった場合 TLE となる可能性があります.
  • $3N$ 回を超えて質問をしたり,不正な出力を行った場合のジャッジ結果は不定です.
  • 解答を出力したらただちにプログラムを終了してください.そうしなかった場合のジャッジ結果は不定です.
  • この問題のジャッジはアダプティブであり,制約および以前の出力に矛盾しない範囲で $A,B$ を変更する場合があります.

サンプル

$N=3,A=(1,2,3),B=(3,1,2)$ の場合の入出力例です.
入力 出力 説明
3 はじめに $N$ が与えられます.
? 1 2 $i=1,j=2$ として質問をします.
1 $\gcd(A_1,B_2)=1$ です.
? 3 2 $i=3,j=2$ として質問をします.
1 $\gcd(A_3,B_2)=1$ です.
? 3 3 $i=3,j=3$ として質問をします.
1 $\gcd(A_3,B_3)=1$ です.
! 1 2 3 3 1 2 $A=(1,2,3),B=(3,1,2)$ と解答します.

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