結果
問題 | No.1793 実数当てゲーム |
ユーザー |
![]() |
提出日時 | 2022-02-22 11:18:45 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 847 ms / 2,000 ms |
コード長 | 984 bytes |
コンパイル時間 | 140 ms |
コンパイル使用メモリ | 82,380 KB |
実行使用メモリ | 101,544 KB |
平均クエリ数 | 2230.56 |
最終ジャッジ日時 | 2024-09-28 13:42:00 |
合計ジャッジ時間 | 14,842 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 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" # https://codeforces.com/blog/entry/49189 # https://twitter.com/maspy_stars/status/1369696139683844097 def solve(): Q = 24 if query(167.7717663): lb = Decimal(167.7717663) ub = Decimal(1222) * (Decimal(10) ** 72) for _ in range(1, Q): mid = (lb * ub).sqrt() if query(mid): lb = mid else: ub = mid print('! {:.20f}'.format((lb * ub * 2) / (lb + ub)), flush=True) else: lb = Decimal(0) ub = Decimal(167.7717663) for _ in range(1, Q): mid = (lb + ub) / 2 if query(mid): lb = mid else: ub = mid print('! {:.20f}'.format((lb + ub) / 2), flush=True) t = int(input()) for _ in range(t): solve()