Submission #211524

#TimeUsernameProblemLanguageResultExecution timeMemory
211524NnandiNautilus (BOI19_nautilus)C++14
66 / 100
324 ms50424 KiB
#include <bits/stdc++.h> using namespace std; const int maxrc = 500; const int maxn = 100; bool dp[maxrc][maxrc][maxn]; bool tab[maxrc][maxrc]; int r, c, m; string dir; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin>>r>>c>>m; for(int i=1;i<=r;i++) { for(int j=1;j<=c;j++) { char z; cin>>z; tab[i][j] = (z != '#'); dp[i][j][m] = (z != '#'); } } cin>>dir; reverse(dir.begin(),dir.end()); int sol = 0; for(int k=m-1;k>=0;k--) { for(int i=1;i<=r;i++) { for(int j=1;j<=c;j++) { map<char,bool> most; most['S'] = dp[i-1][j][k+1]; most['N'] = dp[i+1][j][k+1]; most['W'] = dp[i][j+1][k+1]; most['E'] = dp[i][j-1][k+1]; most['?'] = most['N'] || most['S'] || most['E'] || most['W']; dp[i][j][k] = (most[dir[k]] && tab[i][j]); if(k == 0 && dp[i][j][k]) sol++; } } } cout<<sol<<endl; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...