結果
| 問題 | No.2452 Incline |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2026-09-27 19:48:35 |
| 言語 | PyPy3 (7.3.23 + ACL) |
| 結果 |
WA
不安定
|
| 実行時間 | - |
| コード長 | 1,377 bytes |
| 記録 | |
| コンパイル時間 | 66 ms |
| コンパイル使用メモリ | 81,488 KB |
| 実行使用メモリ | 90,720 KB |
| 最終ジャッジ日時 | 2026-09-27 19:48:42 |
| 合計ジャッジ時間 | 3,449 ms |
|
ジャッジサーバーID (参考情報) |
judge2_1 / judge3_1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | WA * 1 |
| other | WA * 8 |
ソースコード
## https://yukicoder.me/problems/no/2452
MOD = 998244353
def solve2(N, M, R):
# l / (N - 1) を計算
q = R // (N - 1)
ans = ((q - 1) * q) // 2
ans *= (N - 1)
ans += q * (R - (q * (N - 1) - 1))
ans %= MOD
print(ans)
# (l - M) / N - 1を計算
q = M // (N - 1)
ans2 = ((q - 1) * q) // 2
ans2 *= (N - 1)
ans2 += q * (M - (q * (N - 1) - 1))
ans2 %= MOD
ans2 *= -1
ans2 %= MOD
if M <= R:
q = (R - M) // (N - 1)
ans3 = ((q - 1) * q) // 2
ans3 *= (N - 1)
ans3 += q * ((R - M) - (q * (N - 1) - 1))
ans3 %= MOD
ans2 += ans3
ans2 %= MOD
else:
q = (M - R - 1) // (N - 1)
ans3 = ((q - 1) * q) // 2
ans3 *= (N - 1)
ans3 += q * (((M - R - 1)) - (q * (N - 1) - 1))
ans3 %= MOD
ans2 += ans3
ans2 %= MOD
answer = (ans - ans2) % MOD
answer += (R + 1)
answer %= MOD
return answer
def solve(N, M, L, R):
ans = solve2(N, M, R)
print(ans)
if L > 0:
ans -= solve2(N, M, L -1)
ans %= MOD
return ans
def main():
T = int(input())
answers = []
for _ in range(T):
N, M, L, R = map(int, input().split())
ans = solve(N, M, L, R)
answers.append(ans)
for ans in answers:
print(ans)
if __name__ == '__main__':
main()