atcoder#ABC244C. [ABC244C] Yamanote Line Game

[ABC244C] Yamanote Line Game

题目描述

高橋君と青木君は 2 2 人で次の対戦ゲームをします。

高橋君が先手でゲームを始め、ゲームが終了するまでの間、 2 2 人は交互に 1 1 以上 2N+1 2N+1 以下の整数を 1 1 つずつ宣言します。 どちらかが一度でも宣言した整数は、それ以降どちらも二度と宣言することが出来ません。 先に整数を宣言することが出来なくなった方のプレイヤーの負けとなり、負けなかった方のプレイヤーの勝ちとなります。

このゲームでは必ず高橋君が勝ちます。 高橋君の立場で実際にゲームを行い、ゲームに勝ってください。

Input & Output Format

この問題はインタラクティブな問題(あなたの作成したプログラムとジャッジプログラムが入出力を介して対話を行う形式の問題)です。
あなたのプログラムが高橋君の立場で、ジャッジプログラムが青木君の立場でゲームを行います。

まず、あなたのプログラムに標準入力から正の整数 N N が与えられます。 その後、ゲームが終了するまで下記の手順を繰り返します。

  1. あなたのプログラムが、高橋君が宣言する整数として、1 1 以上 2N+1 2N+1 以下の整数を標準出力に出力します。(どちらかのプレイヤーによってすでに宣言されている整数を出力することは出来ません。)
  2. ジャッジプログラムによって、青木君が宣言する整数があなたのプログラムに標準入力から与えられます。(どちらかのプレイヤーによってすでに宣言されている整数が入力されることはありません。) ただし、青木君が宣言できる整数が残っていない場合は、代わりに 0 0 が与えられ高橋君の勝ちでゲームが終了します。

题目大意

本题为 IO 交互题。

高桥和青木两人玩一种对战游戏。桌上有 (2n+1)(2n+1) 张牌,上面分别写着 112n+12n+1(2n+1)(2n+1) 个数各一遍。两个人从高桥开始轮流抽牌。轮到某个人时,若这个人没牌可抽,则这个人输掉了游戏,另一方则胜利了。可以证明,在这个游戏中,高桥一定会胜出。

你的任务是编写一个程序模拟高桥,与判决程序模拟的青木进行对决。首先输入一个正整数 nn ,然后重复以下步骤:

  1. 你的程序会输出一个正整数,作为高桥抽的牌上写的数字(不能输出任何已抽过的牌上的数字);
  2. 判决程序会从你的程序的标准输入输入一个正整数,作为青木抽的牌上写的数字(不会输入任何已抽过的牌上的数字)。如果没有可以抽的牌,程序会输入 00 ,这时高桥获胜,游戏结束。

请注意:

  1. 每次输出后,请用flush刷新标准输出,否则可能会 TLE 。
  2. 在高桥获胜,游戏完成后请立即结束程序,否则可能不会 AC 。
  3. 若游戏过程中你的程序出现了不正确的输出则错误,但当时的判决结果可能不确定,所以不一定会 WA 。

提示

制約

  • 1  N  1000 1\ \leq\ N\ \leq\ 1000
  • N N は整数

注意点

  • 出力を行うたびに標準出力をflushしてください。そうしなかった場合、ジャッジ結果が TLE となる可能性があります。
  • **高橋君の勝ちでゲームが終了したあと、あなたのプログラムは直ちに終了しなければなりません。**そうしなかった場合、ジャッジ結果が AC とならない可能性があります。
  • ゲームの途中で不正な出力を行った場合(例えば、すでにどちらかのプレイヤーによって宣言されている整数を出力した場合)は不正解となりますが、そのときのジャッジ結果は不定です。WA になるとは限りません。

入出力例

入力 出力 説明 2 2 まず整数 N N が与えられます。 1 1 高橋君が 1 1 を宣言します。 3 3 青木君が 3 3 を宣言します。 2 2 高橋君が 2 2 を宣言します。 4 4 青木君が 4 4 を宣言します。 5 5 高橋君が 5 5 を宣言します。 0 0 青木君が宣言できる整数が残っていないため、高橋君の勝ちでゲームが終了します。