結果

問題 No.752 mod数列
ユーザー lam6er
提出日時 2025-04-15 22:23:54
言語 PyPy3
(7.3.15)
結果
TLE  
実行時間 -
コード長 869 bytes
コンパイル時間 308 ms
コンパイル使用メモリ 81,916 KB
実行使用メモリ 108,220 KB
最終ジャッジ日時 2025-04-15 22:26:30
合計ジャッジ時間 5,526 ms
ジャッジサーバーID
(参考情報)
judge2 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample -- * 3
other AC * 16 TLE * 1 -- * 14
権限があれば一括ダウンロードができます

ソースコード

diff #

import sys

def compute_sum(L, R, P):
    res = 0
    current = L
    while current <= R:
        k = P // current
        if k == 0:
            m = R
        else:
            m = P // k
            if m > R:
                m = R
        count = m - current + 1
        res += k * (current + m) * count // 2
        current = m + 1
    return res

def main():
    input = sys.stdin.read().split()
    ptr = 0
    P = int(input[ptr])
    ptr += 1
    Q = int(input[ptr])
    ptr += 1
    for _ in range(Q):
        L = int(input[ptr])
        ptr += 1
        R = int(input[ptr])
        ptr += 1
        R_prime = min(R, P)
        if L > R_prime:
            part1 = 0
        else:
            part1 = compute_sum(L, R_prime, P)
        sum_a = (P * (R_prime - L + 1) - part1) + (max(0, R - R_prime) * P)
        print(sum_a)

if __name__ == '__main__':
    main()
0