結果
問題 |
No.180 美しいWhitespace (2)
|
ユーザー |
![]() |
提出日時 | 2025-04-12 11:30:25 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 73 ms / 5,000 ms |
コード長 | 768 bytes |
コンパイル時間 | 396 ms |
コンパイル使用メモリ | 82,124 KB |
実行使用メモリ | 75,680 KB |
最終ジャッジ日時 | 2025-04-12 11:30:29 |
合計ジャッジ時間 | 3,888 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 31 |
ソースコード
def int_ternary_search(f, lo: int, hi: int) -> int: """区間 [lo, hi] で f(x) が最小となる整数 x を返す""" l = lo r = hi while r - l > 3: m1 = l + (r - l) // 3 m2 = r - (r - l) // 3 if f(m1) > f(m2): l = m1 else: r = m2 ind = l best = f(l) for i in range(l, r+1): v = f(i) if v < best: best = v ind = i return ind INF = 1 << 60 N = int(input()) xs = [] for _ in range(N): a, b = map(int, input().split()) xs.append((a, b)) def f(x): ma = -INF mi = INF for a, b in xs: ma = max(ma, a + b * x) mi = min(mi, a + b * x) return ma - mi ans = int_ternary_search(f, 1, INF) print(ans)