結果
| 問題 | No.1793 実数当てゲーム | 
| コンテスト | |
| ユーザー |  emthrm | 
| 提出日時 | 2021-12-26 01:32:55 | 
| 言語 | PyPy3 (7.3.15) | 
| 結果 | 
                                WA
                                 
                             | 
| 実行時間 | - | 
| コード長 | 894 bytes | 
| コンパイル時間 | 264 ms | 
| コンパイル使用メモリ | 82,048 KB | 
| 実行使用メモリ | 100,960 KB | 
| 平均クエリ数 | 2230.56 | 
| 最終ジャッジ日時 | 2024-09-28 13:38:44 | 
| 合計ジャッジ時間 | 14,271 ms | 
| ジャッジサーバーID (参考情報) | judge1 / judge5 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| other | WA * 18 | 
ソースコード
import math
from decimal import *
getcontext().prec = 200
def query(y):
    print('? {:.20f}'.format(y), flush=True)
    s = input()
    assert(s != "-1")
    return s == "Yes"
def solve():
    Q = 24
    if query(Decimal(262144) / 3125):
        lb = Decimal(0)
        ub = Decimal(262144) / 3125
        for _ in range(1, Q):
            mid = (lb + ub) / 2
            if query(mid):
                ub = mid
            else:
                lb = mid
        print('! {:.20f}'.format((lb + ub) / 2), flush=True)
    else:
        lb = Decimal(262144) / 3125
        ub = Decimal(1222) * (Decimal(10) ** 72)
        for _ in range(1, Q):
            mid = (lb * ub).sqrt()
            if query(mid):
                ub = mid
            else:
                lb = mid
        print('! {:.20f}'.format(2 * lb * ub / (lb + ub)), flush=True)
t = int(input())
for _ in range(t):
    solve()
            
            
            
        