Submission #1295018

#TimeUsernameProblemLanguageResultExecution timeMemory
1295018azik21Nautilus (BOI19_nautilus)C++20
0 / 100
1 ms332 KiB
#include<iostream> #include<cassert> #include<cmath> #include<cstring> #include<algorithm> #include<vector> #include<stack> #include<set> #include<queue> #include<map> #include<iomanip> #include<bitset> #define int long long #define pb push_back #define all(v) (v).begin() , (v).end() using namespace std; const int N = 600; bitset<(N)>dp[N][2]; bitset<(N)>bl[N]; signed main(){ ios_base::sync_with_stdio(0) , cin.tie(0); int n ,m , sz; cin >> n >> m >> sz; char c[n+1][m+1]; for(int i=1 ; i <= n ; i++){ for(int j = 1 ; j <= m ; j++){ char x ; cin >> x ; if(x=='.'){ dp[i][0][j] = 1 ; } else bl[i][j] = 1; } } string s ; cin >> s ; s = '+'+s; int cnt =0 ; for(int time = 1 ; time <= sz ; time++){ if(s[time]=='N' || s[time]=='?'){ for(int i= 1 ; i < n ; i++){ dp[i][1]|=dp[i+1][0]; } } if(s[time]=='S' || s[time]=='?'){ for(int i= 2 ; i <= n ; i++){ dp[i][1]|=dp[i-1][0]; } } if(s[time]=='W' || s[time]=='?'){ for(int i= 1 ; i <= n ; i++){ dp[i][1]|=(dp[i][0]>>1); } } if(s[time]=='E' || s[time]=='?'){ for(int i=1 ; i <= n; i++){ dp[i][1]|=(dp[i][0]<<1); } } for(int i = 1 ; i <= n ; i++){ dp[i][1]|=bl[i]; dp[i][1]^=bl[i]; dp[i][0] = dp[i][1]; dp[i][1]&=0; } } for(int i= 1; i <= n ; i++){ for(int j =1 ; j <= m ;j++){ if(dp[i][0][j]==1)cnt++; } } cout<< cnt ; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...