結果
| 問題 |
No.2452 Incline
|
| コンテスト | |
| ユーザー |
FromBooska
|
| 提出日時 | 2023-09-02 11:16:26 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 883 bytes |
| コンパイル時間 | 368 ms |
| コンパイル使用メモリ | 82,496 KB |
| 実行使用メモリ | 65,920 KB |
| 最終ジャッジ日時 | 2024-06-11 17:55:03 |
| 合計ジャッジ時間 | 4,285 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 1 TLE * 1 -- * 6 |
ソースコード
# 公差区間はN-1あるので、初項と右端項の差が(N-1)の倍数である必要がある
# 右端項が(N-1)個あるたびに、パターン数は(M+1)個となる
# するとR+1-Lに(N-1)個がn回入っていれば、n*(M+1)と残りの数
# この残りの数のカウントに時間がかかりそう、Nが巨大のときにTLEするだろう
# でもとりあえずやってみる
mod = 998244353
T = int(input())
for t in range(T):
N, M, L, R = map(int, input().split())
RL_interval = R+1-L
N_count = RL_interval//(N-1)
residual = RL_interval%(N-1)
ans = N_count*(M+1)
ans %= mod
#print('RL_interval', RL_interval, 'N_count', N_count, 'residual', residual, 'ans', ans)
for r in range(L, L+residual):
calc = (M-r%(N-1)+1+N-2)//(N-1)
ans += calc
ans %= mod
#print('r', r, 'calc', calc)
print(ans)
FromBooska