結果
問題 |
No.3054 Modulo Inequalities
|
ユーザー |
![]() |
提出日時 | 2025-03-08 09:36:46 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 1,396 ms / 2,500 ms |
コード長 | 711 bytes |
コンパイル時間 | 600 ms |
コンパイル使用メモリ | 82,700 KB |
実行使用メモリ | 101,248 KB |
最終ジャッジ日時 | 2025-03-08 09:37:33 |
合計ジャッジ時間 | 36,397 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 31 |
ソースコード
M = off = 1012345 cum = [0] * 2 * M def get_sum(l, r): l += off r += off return cum[min(2 * M - 1, max(r, 0))] - cum[min(2 * M - 1, max(l, 0))] N = int(input()) for i in range(N): a, b = map(int, input().split()) cum[a + off + 1] += 1 cum[b + off + 1] -= 1 cum[a - b + off + 1] -= 1 for i in range(1, M * 2): cum[i] += cum[i - 1] ans = [-1] * M for m in range(1, M): val = 0 r = 0 while True: val += get_sum(r, r + m) * (r // m) r += m if r > M: break l = -m while True: val += get_sum(l, l + m) * (l // m) l -= m if l + m < -M: break ans[m] = val print(ans.index(max(ans)))