問題一覧 > 通常問題

No.3788 Floor Sum Queries

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 1024 MB / リアクティブ問題 (詳しくはこちら)
タグ : (AC するまで非表示) / 解いたユーザー数 3
作問者 : hiro1729 / テスター : DeltaStruct 👑 binap 👑 AngrySadEight / テストしたAI : claude-opus-5-5
お気に入りにしたユーザー ProblemId : 14033 / 自分の提出
問題文最終更新日: 2026-11-06 21:35:00
yukicoder contest 521 yukimy32 (hiro1729) お誕生日コンテスト (順位表) の他の問題:

問題文

yukimy32 さんは $2$ つの $10^6$ 以下の正整数 $N, M$ を隠し持っています。あなたは $10$ 回まで以下の質問を行うことができます。$N$ を特定してください。

  • $1 \le A \le 10^6, 0 \le B \le 10^6$ を満たす整数 $A, B$ を出力してください。

    このとき、ジャッジは $\displaystyle \sum _{i=0}^{N-1} \left\lfloor \frac{Ai+B}{M} \right\rfloor$ を返します。

$T$ 個のテストケースが与えられるので、それぞれについて $N$ を特定してください。詳しくは、入出力をご覧ください。

制約

  • 入力は全て整数
  • $1 \le T \le 100$
  • $1 \le N, M \le 10^6$

入出力

はじめ、入力にテストケース数 $T$ が以下の形式で与えられます。

$T$

その後 $T$ 回、以下の入出力を繰り返してください。

Step 1 (質問)

以下の形式で $A, B$ を出力してください。このとき、$1 \le A \le 10^6, 0 \le B \le 10^6$ を満たさなければいけません。

? $A$ $B$

その後、ジャッジは $\displaystyle R=\sum _{i=0}^{N-1} \left\lfloor \frac{Ai+B}{M} \right\rfloor$ を以下の形式で返すので、これを標準入力として受け取ってください。

$R$

これまでの質問で $N$ の値がわかった、または Step 1 を $10$ 回繰り返した場合、Step 2 に進んでください。

あなたの出力が正しくなかった (出力形式が正しくない、または $A, B$ が制約を満たしていない) 場合、ジャッジは $-1$ を返します。この場合は、ただちにプログラムを終了してください。

Step 2 (解答)

$10$ 回以下の Step 1 の質問で $N$ の値がわかった場合、以下の形式で $N$ の値を出力してください。

! $N$

この値が正しい場合ジャッジは $1$ を返すので、それを標準入力として受け取り、次のテストケースの Step 1 に戻ってください。この値が正しくなかった場合、ジャッジは $-1$ を返します。この場合と、最後のテストケースだった場合はただちにプログラムを終了してください。

注意

出力を行う場合、毎回標準出力を flush してください。不正な出力をして $-1$ を標準入力として受け取った場合、ただちにプログラムを終了してください。これらを行わない場合、正しい受け答えをしていても TLE になることがあります。

また、ジャッジは適応的ではありません。

サンプル

以下は WA となる受け答えの一例です。

あなたの出力 ジャッジからの入力 説明
3 テストケースは $3$ 個です。
? 1 4 $1$ つ目のテストケースではジャッジは $(N,M)=(5,3)$ を隠し持っています。$1$ 回目の質問であなたは $(A,B)=(1,4)$ を出力しました。
8 ジャッジは $(A,B)=(1,4)$ に対する答え $R=8$ を返します。
? 6 0 $2$ 回目の質問であなたは $(A,B)=(6,0)$ を出力しました。$A=0$ は質問できませんが、$B=0$ は質問できることに注意してください。
20 ジャッジは $(A,B)=(6,0)$ に対する答え $R=20$ を返します。
? 9 6 $3$ 回目の質問であなたは $(A,B)=(9,6)$ を出力しました。
40 ジャッジは $(A,B)=(9,6)$ に対する答え $R=40$ を返します。
! 5 あなたは $3$ 回の質問で $N$ が $5$ と分かったので、Step 2 で $N=5$ を出力しました。
1 あなたが出力した値 $N=5$ が正しかったので、ジャッジは 1 を返しました。$2$ つ目のテストケースに進みます。
! 1106 $2$ つ目のテストケースではジャッジは $(N,M)=(8,8)$ を隠し持っています。Step 1 の質問を行わないことも可能です。あなたは Step 1 の質問を行わず、Step 2 で $N=1106$ と出力しました。
-1 あなたが出力した値 $N=1106$ は正しくないため、ジャッジは -1 を返しました。この場合は WA となるため、テストケースはもう $1$ つ残っていますが、ただちにプログラムを終了してください。

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