Submission #419999

#TimeUsernameProblemLanguageResultExecution timeMemory
419999ScarletSNautilus (BOI19_nautilus)C++17
66 / 100
1089 ms588 KiB
#include <bits/stdc++.h> using namespace std; const int N = 505, K = 5005; bitset<N> dp[2][N]; char c[N][N]; string s; int main() { ios_base::sync_with_stdio(0); cin.tie(0); int n,m,k; cin>>n>>m>>k; for (int i=1;i<=n;++i) for (int j=1;j<=m;++j) { cin>>c[i][j]; dp[0][i][j]=(c[i][j]=='.'); } cin>>s; for (auto x : s) { for (int i=1;i<=n;++i) for (int j=1;j<=m;++j) { if (c[i][j]=='#') dp[1][i][j]=0; else if (x=='N') dp[1][i][j]=dp[0][i+1][j]; else if (x=='S') dp[1][i][j]=dp[0][i-1][j]; else if (x=='E') dp[1][i][j]=dp[0][i][j-1]; else if (x=='W') dp[1][i][j]=dp[0][i][j+1]; else dp[1][i][j]=(dp[0][i+1][j]|dp[0][i-1][j]|dp[0][i][j-1]|dp[0][i][j+1]); } for (int i=1;i<=n;++i) for (int j=1;j<=m;++j) dp[0][i][j]=dp[1][i][j]; } int ans = 0; for (int i=1;i<=n;++i) ans+=dp[0][i].count(); cout<<ans; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...