結果

問題 No.853 河原の石
ユーザー gew1fw
提出日時 2025-06-12 14:53:40
言語 PyPy3
(7.3.15)
結果
WA  
実行時間 -
コード長 909 bytes
コンパイル時間 346 ms
コンパイル使用メモリ 82,648 KB
実行使用メモリ 60,900 KB
最終ジャッジ日時 2025-06-12 14:56:43
合計ジャッジ時間 4,480 ms
ジャッジサーバーID
(参考情報)
judge4 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2
other AC * 4 WA * 53
権限があれば一括ダウンロードができます

ソースコード

diff #

import math

def compute_sum_floor(M, n):
    if M == 0:
        return 0
    sum_fl = 0
    sqrt_m = int(math.isqrt(M))
    # 处理k=1到sqrt_m的情况
    for k in range(1, sqrt_m + 1):
        if k > n:
            break
        sum_fl += M // k
    # 处理v=1到sqrt_m的情况,k>sqrt_m的情况
    for v in range(1, sqrt_m + 1):
        # 找到k的范围,使得 floor(M/k) = v
        low = (M // (v + 1)) + 1
        high = M // v
        # 确保k > sqrt_m且<=n
        current_low = max(low, sqrt_m + 1)
        current_high = min(high, n)
        if current_low > current_high:
            continue
        count = current_high - current_low + 1
        sum_fl += v * count
    return sum_fl

H, W = map(int, input().split())

if H == 0 or W == 0:
    print(0)
else:
    abs_W = abs(W)
    M = abs_W - 1
    n = H
    sum_fl = compute_sum_floor(M, n)
    total = H + sum_fl
    print(total)
0