Submission #1115361

#TimeUsernameProblemLanguageResultExecution timeMemory
1115361staszic_ojuzDango Maker (JOI18_dango_maker)C++17
0 / 100
1 ms592 KiB
#include <iostream> #include <vector> using namespace std; int main(){ int n, m; cin>>n>>m; vector<string> vect(n); for (int i=0;i<n;i++) cin>>vect[i]; vector<vector<int>> dp(n); vector<vector<bool>> used(n); for (int i=0;i<n;i++){ dp[i].resize(m); used[i].resize(m); } for (int i=0;i<n;i++){ for (int j=0;j<m;j++){ if (i>0) dp[i][j]+=dp[i-1][j]; if (j>0) dp[i][j]+=dp[i][j-1]; if (i>0&&j>0) dp[i][j]-=dp[i-1][j-1]; if (i>=2&&j>=2){ if ((((vect[i][j]=='W'&&vect[i-1][j]=='G'&&vect[i-2][j]=='R')||(vect[i][j]=='R'&&vect[i-1][j]=='G'&&vect[i-2][j]=='W'))&&!used[i-1][j]&&!used[i-2][j])&&(((vect[i][j]=='W'&&vect[i][j-1]=='G'&&vect[i][j-2]=='R')||(vect[i][j]=='R'&&vect[i][j-1]=='G'&&vect[i][j-2]=='W'))&&!used[i][j-1]&&!used[i][j-2])){ if (dp[i-1][j]>dp[i][j-1]){ used[i][j]=true; used[i][j-1]=true; used[i][j-2]=true; } else{ used[i][j]=true; used[i-1][j]=true; used[i-2][j]=true; } dp[i][j]++; continue; } } if (i>=2){ if (((vect[i][j]=='W'&&vect[i-1][j]=='G'&&vect[i-2][j]=='R')||(vect[i][j]=='R'&&vect[i-1][j]=='G'&&vect[i-2][j]=='W'))&&!used[i-1][j]&&!used[i-2][j]){ used[i][j]=true; used[i-1][j]=true; used[i-2][j]=true; dp[i][j]++; continue; } } if (j>=2){ if (((vect[i][j]=='W'&&vect[i][j-1]=='G'&&vect[i][j-2]=='R')||(vect[i][j]=='R'&&vect[i][j-1]=='G'&&vect[i][j-2]=='W'))&&!used[i][j-1]&&!used[i][j-2]){ used[i][j]=true; used[i][j-1]=true; used[i][j-2]=true; dp[i][j]++; continue; } } } } cout<<dp[n-1][m-1]<<'\n'; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...