Submission #1188571

#TimeUsernameProblemLanguageResultExecution timeMemory
1188571emil_aliyevvNautilus (BOI19_nautilus)C++20
100 / 100
215 ms528 KiB
#include <bits/stdc++.h> #define ll long long #define INF 2000000000 #define MAX 500 using namespace std; bitset<MAX> bi[MAX], nbi[MAX], ma[MAX]; int main(){ char c; int n, m, x; cin>>n>>m>>x; for (int i = 0; i < n; i++){ for (int j = 0; j < m; j++){ cin>>c; if (c == '.'){ bi[i][j] = 1; ma[i][j] = 1; } } } string s; cin>>s; for (auto el : s){ for (int i = 0; i < MAX; i++) nbi[i] = 0; if (el == 'W' || el == '?'){ for (int i = 0; i < MAX; i++){ nbi[i] = (nbi[i] | (bi[i]>>1)); } } if (el == 'E' || el == '?'){ for (int i = 0; i < MAX; i++){ nbi[i] = (nbi[i] | (bi[i]<<1)); } } if (el == 'N' || el == '?'){ for (int i = 1; i < MAX; i++){ nbi[i - 1] = (nbi[i - 1] | bi[i]); } } if (el == 'S' || el == '?'){ for (int i = 0; i < MAX - 1; i++){ nbi[i + 1] = (nbi[i + 1] | bi[i]); } } for (int i = 0; i < MAX; i++) bi[i] = (nbi[i] & ma[i]); } int ans = 0; for (int i = 0; i < MAX; i++) ans += bi[i].count(); cout<<ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...