結果
| 問題 |
No.1696 Nonnil
|
| コンテスト | |
| ユーザー |
sasa8uyauya
|
| 提出日時 | 2025-03-08 08:41:26 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 900 ms / 3,500 ms |
| コード長 | 1,135 bytes |
| コンパイル時間 | 682 ms |
| コンパイル使用メモリ | 82,272 KB |
| 実行使用メモリ | 148,876 KB |
| 最終ジャッジ日時 | 2025-03-08 08:41:44 |
| 合計ジャッジ時間 | 18,313 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 39 |
ソースコード
n,k=map(int,input().split())
m=int(input())
p=[-1]*k
for _ in range(m):
l,r=map(int,input().split())
l-=1
r-=1
p[r]=max(p[r],l)
for i in range(k):
for j in range(i+1,k):
if i!=j and p[i]!=-1 and p[j]!=-1 and p[i]>=p[j]:
p[j]=-1
M=998244353
q1=[[[0]*(k+1) for i in range(k+2)] for _ in range(2)]
q2=[[[0]*(k+1) for i in range(k+2)] for _ in range(2)]
for r in range(k):
nq=[[0]*(k+1),[0]*(k+1)]
if p[r]!=-1:
l=p[r]
nq[1][r-l+1]+=1
for i in range(k+1):
if i-(r-l+1)>=0:
nq[0][i]+=q1[1][i-(r-l+1)][l-1]
nq[1][i]+=q1[0][i-(r-l+1)][l-1]
for i in range(k+1):
nq[0][i]+=q2[1][i-1][r-1]-q2[1][i-min(r-l,r,i)-1][r-min(r-l,r,i)-1]
nq[1][i]+=q2[0][i-1][r-1]-q2[0][i-min(r-l,r,i)-1][r-min(r-l,r,i)-1]
for i in range(k+1):
q1[0][i][r]=nq[0][i]+q1[0][i][r-1]
q1[0][i][r]%=M
q1[1][i][r]=nq[1][i]+q1[1][i][r-1]
q1[1][i][r]%=M
q2[0][i][r]=nq[0][i]+q2[0][i-1][r-1]
q2[0][i][r]%=M
q2[1][i][r]=nq[1][i]+q2[1][i-1][r-1]
q2[1][i][r]%=M
a=pow(k,n,M)
for i in range(k+1):
a-=pow(k-i,n,M)*q1[1][i][k-1]
a+=pow(k-i,n,M)*q1[0][i][k-1]
a%=M
print(a)
sasa8uyauya