問題一覧 > 通常問題

No.1793 実数当てゲーム

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / リアクティブ問題 (詳しくはこちら
タグ : / 解いたユーザー数 28
作問者 : to-omerto-omer / テスター : とりゐとりゐ
5 ProblemId : 7272 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2021-12-20 18:36:53

この問題は、 yukicoder Advent Calendar Contest 2021 の 12 月 22 日出題の問題です。

問題文

この問題はインタラクティブ問題です。
この問題では一つの入力につきテストケースが $T$ 個与えられます。

Aさんは $0$ 以上 $12.22\times 10^{74}$ 以下のある 実数 $x$ が大好きです。
以下の質問を行うことでAさんの好きな実数 $x$ を当ててください。

  • 実数 $y$ が $x$ 以下かどうか。

ただし、Aさんは忙しいので、 $24$ 回までしか質問に答えてくれません。
しかし、Aさんは優しいので、絶対誤差または相対誤差が $10^{-5}$ 以下であれば正解にしてくれます。

▶絶対誤差・相対誤差とは
  • 絶対誤差:真の値 $x$ に対し、 $y$ の絶対誤差は $\displaystyle|x-y|$ で定義される。
  • 相対誤差:真の値 $x\ (\neq 0)$ に対し、 $y$ の相対誤差は $\displaystyle\frac{|x-y|}{|x|}$ で定義される。

入出力

最初に、テストケースの数 $T$ が与えられます。

$T$

$T$ は $1\le T \le 100$ である整数です。

以降、 $T$ 個のテストケースが続きます。

質問は以下の形式で標準出力に出力してください。

? $y$

ここで、 $0\le y\le 12.22\times 10^{74}$ を満たす必要があります。

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

$S$

ここで、 $S$ は以下のいずれかの文字列です。

  • Yes:実数 $y$ は $x$ 以下になります。
  • No:実数 $y$ は $x$ 以下でない。
  • -1:質問回数が $24$ 回を超えた、または不正な出力を行った。この場合、直ちにプログラムを終了させてください。

実数 $x$ を答えるときは、次の形式で標準出力に出力してください。

! $x$

ここで、 $0\le x\le 12.22\times 10^{74}$ を満たす必要があります。
絶対誤差または相対誤差が $10^{-5}$ 以下のとき正解として扱われます。

その後、次のテストケースがあれば続けて処理し、なければすぐにプログラムを終了してください。

各出力の末尾には改行を付け、標準出力を flush してください。

制約

$1\le T\le 100$
$0\le x\le 12.22\times 10^{74}$

サンプル

$T=2$ の場合、以下のようなやり取りが考えられます。

入力出力説明
2$T=2$
? 11つ目のテストケースの開始
No$1$ は $x$ 以下でない
? 0.99999999
Yes$0.99999999$ は $x$ 以下である
! 0.99999999
? 1.414213562つ目のテストケースの開始
Yes$1.41421356$ は $x$ 以下である
! 3.14159265

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