結果
問題 | No.2962 Sum Bomb Bomber |
ユーザー |
|
提出日時 | 2024-11-16 16:15:58 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 201 ms / 2,000 ms |
コード長 | 1,725 bytes |
コンパイル時間 | 534 ms |
コンパイル使用メモリ | 82,328 KB |
実行使用メモリ | 75,428 KB |
平均クエリ数 | 169.66 |
最終ジャッジ日時 | 2024-11-16 16:17:03 |
合計ジャッジ時間 | 13,702 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 64 |
ソースコード
"""input""" #int-input # input = sys.stdin.readline def II(): return int(input()) def MI(): return map(int, input().split()) def LI(): return list(MI()) #str-input def SI(): return input() def MSI(): return input().split() def SI_L(): return list(SI()) def SI_LI(): return list(map(int, SI())) #multiple-input def LLI(n): return [LI() for _ in range(n)] def LSI(n): return [SI() for _ in range(n)] #1-indexを0-indexでinput def MI_1(): return map(lambda x:int(x)-1, input().split()) def TI_1(): return tuple(MI_1()) def LI_1(): return list(MI_1()) from bisect import bisect_left,bisect_right inf = 1<<60 def tri_float(comparison, l = -10**8, r = 10**8): while abs(r - l)/abs(r) > error and abs(r - l) > error: l2 = (l*2+r)/3 r2 = (l+r*2)/3 if comparison(l2) > comparison(r2): l = l2 else: r = r2 return l2, comparison(l2) from functools import cache const = 10**8 n = II() @cache def solve(x): print(1,x,0) return II() l = -const r = const while abs(r - l) > 1: l2 = (l*2+r)//3 r2 = (l+r*2)//3 resl2 = solve(l2) resr2 = solve(r2) if resl2 > resr2: l = l2 + 1 elif resl2 < resr2: r = r2 - 1 else: l = l2 + 1 resl2 = solve(l) resr2 = solve(r) if resl2 < resr2: ansx = l else: ansx = r @cache def solve2(y): print(1,0,y) return II() l = -const r = const while abs(r - l) > 1: l2 = (l*2+r)//3 r2 = (l+r*2)//3 resl2 = solve2(l2) resr2 = solve2(r2) if resl2 > resr2: l = l2 + 1 elif resl2 < resr2: r = r2 - 1 else: l = l2 + 1 resl2 = solve2(l) resr2 = solve2(r) if resl2 < resr2: ansy = l else: ansy = r print(2,ansx,ansy)