結果
問題 |
No.2788 4-33 Hard
|
ユーザー |
![]() |
提出日時 | 2024-07-03 04:21:50 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
AC
|
実行時間 | 572 ms / 2,000 ms |
コード長 | 922 bytes |
コンパイル時間 | 131 ms |
コンパイル使用メモリ | 12,800 KB |
実行使用メモリ | 11,136 KB |
最終ジャッジ日時 | 2024-07-03 04:22:22 |
合計ジャッジ時間 | 28,710 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 52 |
ソースコード
O=[list(map(int,input().split())) for U in range(5)] X=[list(map(int,input().split())) for U in range(5)] mod=998244353 dp=[[[0]*34 for U in range(5)] for c in range(10)] dp[0][0][0]=1 def comb(x,c): retu=1 for i in range(x,x-c,-1): retu*=i for i in range(1,c+1): retu//=i return retu%mod for a in range(5): for b in range(34): prev=dp dp=[[[0]*34 for U in range(5)] for c in range(10)] for cc in range(min(9,O[a][b]+1)): for c in range(9,cc-1,-1): for U in range(4,a*cc-1,-1): for D in range(33,b*cc-1,-1): dp[c][U][D]+=prev[c-cc][U-a*cc][D-b*cc]*comb(O[a][b],cc) dp[c][U][D]%=mod ans=0 for a in range(5): for U in range(5): for D in range(34): if (U+a,D)==(4,33): ans+=dp[8][U][D]*X[a][0] ans%=mod print(ans)