結果
問題 |
No.2568 列辞書順列列
|
ユーザー |
![]() |
提出日時 | 2023-12-02 17:18:51 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 386 ms / 3,000 ms |
コード長 | 412 bytes |
コンパイル時間 | 322 ms |
コンパイル使用メモリ | 82,176 KB |
実行使用メモリ | 119,168 KB |
最終ジャッジ日時 | 2024-09-26 21:10:03 |
合計ジャッジ時間 | 11,880 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 25 |
ソースコード
N, M, Q = map(int, input().split()) A = list(map(int, input().split())) MOD = 998244353 invM = [1] inv = pow(M, -1, MOD) accA = [0] * (N+1) bai = 1 for i in reversed(range(N)): invM.append((invM[-1] * inv)%MOD) accA[i] = accA[i+1] + (A[i] - 1)*bai accA[i] %= MOD bai *= M bai %= MOD for _ in range(Q): l, r = map(int, input().split()) print(((accA[l-1] - accA[r])*invM[N-r] + 1)%MOD)