問題一覧 > 通常問題

No.3501 Digit Products 2

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 1024 MB / リアクティブ問題 (詳しくはこちら
タグ : / 解いたユーザー数 54
作問者 : 2251799813685248 / テスター : Naru820 Nzt3 Solalyth
ProblemId : 13166 / CPCTF 2026: PPC (順位表) / 自分の提出
問題文最終更新日: 2026-04-16 21:52:57
CPCTF 2026: PPCの他の問題:

問題文

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

ジャッジが $10$ 進数で $N$ 桁の正の整数 $X$ を隠し持っています。

以下の質問を $N$ 回以下行うことで、$X$ を $1$ 通りに決定できるかどうかを判定し、$1$ 通りに決定できるならば $X$ を求めてください。

  • $X$ を $10$ 進数表記したときの $2$ つの異なる桁を指定し、その積を聞く。

制約

  • $2 \leq N \leq 51$
  • $X$ はleading-zeroのない、$10$ 進数で $N$ 桁の正の整数

入出力

まず、以下の形式で標準入力から $N$ を受け取ってください。
$N$

次に、以下の形式で $0$ 回以上 $N$ 回以下質問を行ってください。

  • ジャッジに質問をするとき

$10^a$ の位と $10^b$ の位の積を質問するときは、以下の形式で標準出力に出力してください。ただし、$a,b$ はleading-zeroがなく、$0 \leq a < b \leq N-1$ である必要があります。

$?\ a\  b$

ジャッジからの応答は、以下の形式で標準入力から与えられます。

$p$

ここで、$p$ は $X$ の $10^a$ の位と $10^b$ の位の積です。

ただし、対話の途中で誤った形式による出力を行ったり、質問回数が $N$ を超えたりした場合は $p = -1$ となります。

となります。この場合、すでにジャッジプログラムは終了し、不正解扱いとなっているためあなたは直ちにプログラムを停止してください。そうしない場合、ジャッジ結果は不定です。

  • 問題に解答するとき

質問が終了したら、以下の形式であなたが推測した整数 $X$ を出力してください。

$!\ X$

ただし、$N$ 回以内の質問で整数 $X$ をただ $1$ 通りに決定できないと分かった場合には以下のように出力してください。

$!$ $-1$
その後、ジャッジは以下のように正誤判定を行います。
  1. ジャッジが隠し持っている整数 $X$ が、$N$ 回以内の質問でただ $1$ 通りに決定できないものであった場合
  2. 決定できないことを正しく報告したときのみ正解扱いになり、そうでない場合は不正解となります。運よく正しい値を当てた場合でも、ただ $1$ 通りに決定できないことを報告しなかった場合、不正解となります。

  3. ジャッジが隠し持っている整数 $X$ が、$N$ 回以内の質問でただ $1$ 通りに決定できるものであった場合
  4. 決定できないことを報告してしまった場合、不正解となります。そうでないとき、あなたが推測して出力した値が整数 $X$ と一致していれば正解となり、異なれば不正解となります。

入出力の例

$N=3$, $X=201$の場合のやり取りの一例です。(本来、あなたは $N$ のみが与えられ、$X$ は与えられません)
入力 出力 説明
3 まず、あなたは標準入力から整数 $N$ を受け取ります。
? 0 1 1の位と10の位の積をジャッジに聞きます。
0 0と返答されました。
? 0 2 1の位と100の位の積をジャッジに聞きます。
2 2と返答されました。
! -1 整数 $X$ はただ $1$ 通りには決定できないと判定しました。この判断は正しいため、これで正解となります。

注意

  • 出力を行うたびに、末尾に改行を入れて標準入力をflushしてください。そうしなかった場合、実行時間制限超過となる場合があります。
  • 答えを出力したら直ちにプログラムを正常終了してください。

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