結果
問題 | No.2430 Damage Zone |
ユーザー | 👑 potato167 |
提出日時 | 2023-08-15 22:10:53 |
言語 | C++17(gcc12) (gcc 12.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 20 ms / 2,000 ms |
コード長 | 650 bytes |
コンパイル時間 | 2,324 ms |
コンパイル使用メモリ | 210,436 KB |
実行使用メモリ | 19,456 KB |
最終ジャッジ日時 | 2024-11-24 07:06:13 |
合計ジャッジ時間 | 3,470 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 28 |
ソースコード
#include<bits/stdc++.h> using namespace std; using ll = long long; #define all(p) p.begin(),p.end() #define rep(i,a,b) for(int i=(int)a;i<(int)b;i++) const int mod=998244353; int main(){ int H,W,K; cin>>H>>W>>K; vector dp(H,vector(W,vector<ll>(K))); rep(i,0,K) dp[0][0][i]=1; vector<string> p(H); rep(i,0,H) cin>>p[i]; rep(i,0,H) rep(j,0,W){ if(p[i][j]=='#') continue; if(p[i][j]=='o'){ for(int k=K-1;k>0;k--) dp[i][j][k]=dp[i][j][k-1]; dp[i][j][0]=0; } for(auto &x:dp[i][j]) x%=mod; if(i+1!=H) rep(k,0,K) dp[i+1][j][k]+=dp[i][j][k]; if(j+1!=W) rep(k,0,K) dp[i][j+1][k]+=dp[i][j][k]; } cout<<dp[H-1][W-1][K-1]%mod<<"\n"; }