Submission #1165924

#TimeUsernameProblemLanguageResultExecution timeMemory
1165924LeonidCukNautilus (BOI19_nautilus)C++20
100 / 100
61 ms508 KiB
#include <bits/stdc++.h> #pragma GCC optimize("Ofast") using namespace std; int main() { int n,m,k; char a; cin>>n>>m>>k; vector<bitset<500>>dp(n),v(n); for(int i=0;i<n;i++) { for(int j=0;j<m;j++) { cin>>a; if(a=='#') { dp[i][j]=false; v[i][j]=false; } else { dp[i][j]=true; v[i][j]=true; } } } for(int j=0;j<k;j++) { cin>>a; vector<bitset<500>>temp(n); if(a=='W'||a=='?') { for(int i=0;i<n;i++) { temp[i]|=(dp[i]>>1); } } if(a=='E'||a=='?') { for(int i=0;i<n;i++) { temp[i]|=(dp[i]<<1); } } if(a=='N'||a=='?') { for(int i=0;i<n-1;i++) { temp[i]|=(dp[i+1]); } } if(a=='S'||a=='?') { for(int i=1;i<n;i++) { temp[i]|=(dp[i-1]); } } for(int i=0;i<n;i++)dp[i]=v[i]&temp[i]; } int bb=0; for(int i=0;i<n;i++) { for(int j=0;j<m;j++) { if(dp[i][j])bb++; } } cout<<bb; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...