問題一覧 > 教育的問題

No.2753 鳩の巣原理

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

問題文

この問題はリアクティブ形式の(ジャッジ側のプログラムと対話的に実行する必要がある)問題です。

 

入力の最初に $2$ 以上の 整数 $N$ が与えられます。

 

鳩の巣大好きbot鳩の巣が大好きなbotです。

鳩の巣大好きbot鳩の巣を $N$ 個持っており、それらを $N$ 以下の各正整数 $i$ で番号づけ鳩の巣 $i$ と呼んで大切にしています。

しかし $N$ 個の鳩の巣にそれぞれ何羽かの鳩が住み着いてしまいました。あなたはどの鳩の巣に何羽の鳩が住み着いているかを知りませんが、鳩の巣大好きbotから以下の情報を得ました。

  • $N$ 未満の各正整数 $i$ に対し、鳩の巣 $i$ に住み着いている鳩の数は鳩の巣 $i+1$ に住み着いている鳩の数以下の正整数である。
  • 鳩の巣 $N$ に住み着いている鳩の数は $N$ 未満の正整数である。

あなたはその情報をもとに、住み着いている鳩の数が等しい $2$ つの相異なる鳩の巣が存在するのではないかと推測しました。

 

そこで、以下の一連のやり取りをちょうど $10$ 回行います。

  • あなたは $N$ 以下の正整数 $i$ を選び、鳩の巣 $i$ に何羽の鳩が住み着いているかを鳩の巣大好きbotに尋ねる。(既に尋ねて知っている場合でも再度尋ねて構わない)
  • 鳩の巣大好きbot鳩の巣 $i$ に何羽の鳩が住み着いているかをあなたに答える。

その後、住み着いている鳩の数が等しい $2$ つの相異なる鳩の巣が存在するか否かを判定し、存在する場合はそのような鳩の巣を $1$ 組求めてください。

入出力

$10$ 以下の各正整数 $q$ に対し、$q$ 回目のやり取りであなたが選ぶ正整数を $i_q$ と置きます。

 

最初に鳩の巣の個数 $N$ が標準入力から $1$ 行で与えられます。

$N$

その後でちょうど $10$ 回のやり取りをしてください。$10$ 以下の各正整数 $q$ に対し、$q$ 回目のやり取りは標準入出力を用いて以下の形式で行います:

  • まず?と $i_q$ を半角空白区切りで $1$ 行で(出力全体の $q$ 行目に)出力してください。
  • ? $i_q$
    
  • 続いて鳩の巣 $i_q$ に住み着いている鳩の数が $1$ 行で(入力全体の $1+q$ 行目に)与えられます。
  • (鳩の巣 $i_q$ に住み着いている鳩の数)
    

最後にあなたはこの問題に対する答えを標準出力に以下の形式で出力してください:

  • 住み着いている鳩の数が等しい $2$ つの相異なる鳩の巣が存在しないならば、Noと(出力全体の $11$ 行目に)出力してください。
  • No
    
  • 住み着いている鳩の数が等しい $2$ つの相異なる鳩の巣が存在するならば、そのような $2$ つの鳩の巣の番号の一例をそれぞれ $i, j$ と置き、Yes と $i,j$ を半角空白区切りで(出力全体の $11$ 行目に)出力してください。
  • Yes $i$ $j$
    

最後に改行してください。

制約

入力は以下の制約を満たします:

  • $N$ は $2 \leq N \leq 10^3$ を満たす整数である。
  • $10$ 回のやり取りにおける入力は問題文に記載されている以下の情報と整合的であり、やり取りの前後でどの鳩の巣に何羽の鳩が住み着いているかは変化しない。
    • $N$ 未満の各正整数 $i$ に対し、鳩の巣 $i$ に住み着いている鳩の数は鳩の巣 $i+1$ に住み着いている鳩の数以下の正整数である。
    • 鳩の巣 $N$ に住み着いている鳩の数は $N$ 未満の正整数である。

注意

リアクティブ形式の問題に慣れてない方は、リアクティブ形式の問題についてのまとめも参考にしてください。

この問題において、以下の指示に従っていない提出のジャッジ結果は保証しません:

  • 出力は指定された形式に厳格に従ってください。例えば余計な空白を入れたりしないでください。
  • 出力を行うたびに末尾に改行を入れて標準出力をflushしてください。
  • この問題に対する答えを出力した後はプログラムをすぐに終了させてください。

サンプル

以下は $N=10$ としてやり取りが始まった場合の対話の一例です。

入力 出力 説明
? 1 あなたは鳩の巣 $1$ に住み着いている鳩の数を尋ねました。
1 鳩の巣大好きbot鳩の巣 $1$ に住み着いている鳩の数が $1$ であると答えました。
? 2 あなたは鳩の巣 $2$ に住み着いている鳩の数を尋ねました。
2 鳩の巣大好きbot鳩の巣 $2$ に住み着いている鳩の数が $2$ であると答えました。
? 3 あなたは鳩の巣 $3$ に住み着いている鳩の数を尋ねました。
3 鳩の巣大好きbot鳩の巣 $3$ に住み着いている鳩の数が $3$ であると答えました。
? 4 あなたは鳩の巣 $4$ に住み着いている鳩の数を尋ねました。
4 鳩の巣大好きbot鳩の巣 $4$ に住み着いている鳩の数が $4$ であると答えました。
? 5 あなたは鳩の巣 $5$ に住み着いている鳩の数を尋ねました。
5 鳩の巣大好きbot鳩の巣 $5$ に住み着いている鳩の数が $5$ であると答えました。
? 6 あなたは鳩の巣 $6$ に住み着いている鳩の数を尋ねました。
6 鳩の巣大好きbot鳩の巣 $6$ に住み着いている鳩の数が $6$ であると答えました。
? 7 あなたは鳩の巣 $7$ に住み着いている鳩の数を尋ねました。
7 鳩の巣大好きbot鳩の巣 $7$ に住み着いている鳩の数が $7$ であると答えました。
? 8 あなたは鳩の巣 $8$ に住み着いている鳩の数を尋ねました。
8 鳩の巣大好きbot鳩の巣 $8$ に住み着いている鳩の数が $8$ であると答えました。
? 9 あなたは鳩の巣 $9$ に住み着いている鳩の数を尋ねました。
9 鳩の巣大好きbot鳩の巣 $9$ に住み着いている鳩の数が $9$ であると答えました。
? 10 あなたは鳩の巣 $10$ に住み着いている鳩の数を尋ねました。
9 鳩の巣大好きbot鳩の巣 $10$ に住み着いている鳩の数が $9$ であると答えました。
Yes 9 10 あなたは鳩の巣 $9$ に住み着いている鳩の数と鳩の巣 $10$ に住み着いている鳩の数が等しいと分かったので、そう答えました。

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