結果
問題 |
No.1354 Sambo's Treasure
|
ユーザー |
![]() |
提出日時 | 2021-01-20 17:12:51 |
言語 | PyPy3 (7.3.15) |
結果 |
MLE
|
実行時間 | - |
コード長 | 1,227 bytes |
コンパイル時間 | 583 ms |
コンパイル使用メモリ | 82,432 KB |
実行使用メモリ | 852,612 KB |
最終ジャッジ日時 | 2024-12-23 06:59:25 |
合計ジャッジ時間 | 67,716 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 20 TLE * 1 MLE * 40 |
ソースコード
N,M,L,K=map(int, input().split()) C,T=[],[] for i in range(M): x,y=map(int, input().split()) C.append((x+y,x,y)) for i in range(L): x,y=map(int, input().split()) T.append((x+y,x,y)) C=sorted(C) T=sorted(T) C.append((2*N+2,N+1,N+1)) E=[[0]*(N+2) for i in range(N+2)] #1:check 2:tiger for a,x,y in T: E[x][y]=2 #print(C) #print(T) dp=[[[0]*(N+3) for w in range(N+3)]for h in range(K+3)] dp[K][0][0]=1 mod=998244353 for i in range(M+1): if i==0: sx,sy=0,0 gx,gy=C[0][1],C[0][2] else: sx,sy=C[i-1][1],C[i-1][2] gx,gy=C[i][1],C[i][2] for k in range(K,-1,-1): for x in range(sx,gx+1): for y in range(sy,gy+1): dp[k][x][y]%=mod if E[x][y]==0: if x+1<=gx: dp[k][x+1][y]+=dp[k][x][y] if y+1<=gy: dp[k][x][y+1]+=dp[k][x][y] else: if k>0: if x+1<=gx: dp[k-1][x+1][y]+=dp[k][x][y] if y+1<=gy: dp[k-1][x][y+1]+=dp[k][x][y] ans=0 for k in range(K+1): ans+=dp[k][N][N] ans%=mod print(ans)