結果
問題 |
No.752 mod数列
|
ユーザー |
![]() |
提出日時 | 2025-04-15 22:22:00 |
言語 | PyPy3 (7.3.15) |
結果 |
TLE
|
実行時間 | - |
コード長 | 921 bytes |
コンパイル時間 | 183 ms |
コンパイル使用メモリ | 81,848 KB |
実行使用メモリ | 99,816 KB |
最終ジャッジ日時 | 2025-04-15 22:24:12 |
合計ジャッジ時間 | 6,028 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | -- * 3 |
other | AC * 16 TLE * 1 -- * 14 |
ソースコード
import sys def main(): input = sys.stdin.read().split() ptr = 0 P = int(input[ptr]) ptr += 1 Q = int(input[ptr]) ptr += 1 results = [] for _ in range(Q): L = int(input[ptr]) ptr += 1 R = int(input[ptr]) ptr += 1 right = min(R, P) if L > right: total = P * (R - L + 1) else: sum_part = 0 n_start = L while n_start <= right: k = P // n_start if k == 0: break n_end = min(right, P // k) count = n_end - n_start + 1 sum_val = (n_start + n_end) * count // 2 sum_part += k * sum_val n_start = n_end + 1 total = P * (R - L + 1) - sum_part results.append(total) print('\n'.join(map(str, results))) if __name__ == '__main__': main()