結果
| 問題 |
No.2891 Mint
|
| コンテスト | |
| ユーザー |
detteiuu
|
| 提出日時 | 2024-09-13 23:18:42 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 144 ms / 2,000 ms |
| コード長 | 573 bytes |
| コンパイル時間 | 295 ms |
| コンパイル使用メモリ | 82,304 KB |
| 実行使用メモリ | 75,264 KB |
| 最終ジャッジ日時 | 2024-09-13 23:18:49 |
| 合計ジャッジ時間 | 5,722 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 54 |
ソースコード
N, M = map(int, input().split())
MOD = 998244353
ans = M*N%MOD
for i in range(1, min(N+1, 10**6+1)):
ans -= M
ans %= MOD
ans += M%i
ans %= MOD
if N <= 10**6:
exit(print(ans))
def SUM(left, right, cnt):
return (left+right)*cnt//2%MOD
right = M
left = M//2+1
cnt = 1
while True:
R = min(right, N)
L = max(left, 10**6+1)
if R-L+1 > 0:
ans -= (R-L+1)*M
ans %= MOD
ans += SUM(M%R, M%L, R-L+1)
ans %= MOD
if left <= 10**6:
break
cnt += 1
right = M//cnt
left = M//(cnt+1)+1
print(ans)
detteiuu