Submission #446278

#TimeUsernameProblemLanguageResultExecution timeMemory
446278osmanallazovNautilus (BOI19_nautilus)C++14
66 / 100
14 ms4640 KiB
#include <bits/stdc++.h> #define ll long long using namespace std; char a[105][105]; int dp[105][105][105]; int main(){ int r,c,m; cin>>r>>c>>m; for(int i=1;i<=r;i++){ for(int j=1;j<=c;j++){ cin>>a[i][j]; } } int say=0; string s; cin>>s; for (int i=1;i<=r;i++) { for (int j=1;j<=c;j++) { dp[i][j][0]=(a[i][j]=='.'); } } for(int k=1;k<=m;k++) { for(int i=1; i<=r;i++) { for(int j=1; j<=c;j++) { if (a[i][j] == '#') continue; int x = i, y = j; if (s[k-1]=='N')x++; else if(s[k-1]=='S')x--; else if(s[k-1]=='W')y++; else if(s[k-1]=='E')y--; else{ x--; dp[i][j][k] |= dp[i - 1][j][k-1]; dp[i][j][k] |= dp[i][j - 1][k-1]; dp[i][j][k] |= dp[i + 1][j][k-1]; dp[i][j][k] |= dp[i][j + 1][k-1]; } dp[i][j][k] |= dp[x][y][k-1]; } } } for(int i=1;i<=r;i++) { for(int j=1;j<=c;j++) { say += dp[i][j][m]; } } cout<<say; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...