結果
問題 |
No.253 ロウソクの長さ
|
ユーザー |
![]() |
提出日時 | 2025-08-02 15:24:42 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 66 ms / 2,000 ms |
コード長 | 1,097 bytes |
コンパイル時間 | 214 ms |
コンパイル使用メモリ | 82,660 KB |
実行使用メモリ | 71,428 KB |
平均クエリ数 | 21.14 |
最終ジャッジ日時 | 2025-08-02 15:24:48 |
合計ジャッジ時間 | 5,600 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 36 |
ソースコード
cnt = 0 def ret2(x): print("?",x) return int(input()) def ret(ans,cnt,x): if x == ans - cnt: return 0 elif x > ans - cnt: return -1 else: return 1 def solve(): cnt = 0 #r = ret(ans,cnt,100) r = ret2(100) cnt += 1 if r == 0: print("!",100) return elif r == -1: lb = 10 ub = 100 while ub - lb > 0: mid = (ub + lb) // 2 #r = ret(ans,cnt,mid - cnt) r = ret2(mid-cnt) cnt += 1 if r == 0: print("!",mid) return elif r == 1: lb = mid else: ub = mid return else: lb = 101 ub = 10 ** 9 + 1 while ub - lb > 0: mid = (ub + lb) // 2 #r = ret(ans,cnt,mid - cnt) r = ret2(mid-cnt) cnt += 1 if r == 0: print("!",mid) return elif r == 1: lb = mid else: ub = mid solve()