#include <bits/stdc++.h>
using namespace std;
int r, c, m;
bitset<500> bs[2][500], fr[500];
int32_t main() {
cin.tie(0); cout.tie(0); ios_base::sync_with_stdio(0);
cin >> r >> c >> m;
for(int i=0; i<r; i++) {
for(int j=0; j<c; j++) {
char x;
cin >> x;
bs[0][i][j] = fr[i][j] = x=='.';
}
}
string s;
cin >> s;
int t=0;
for(char x : s) {
for(int i=0; i<r; i++) bs[t^1][i] = 0;
if(x=='N' || x=='?') {
for(int i=1; i<r; i++)
bs[t^1][i-1] |= bs[t][i];
}
if(x=='E' || x=='?') {
for(int i=0; i<r; i++)
bs[t^1][i] |= bs[t][i]<<1;
}
if(x=='S' || x=='?') {
for(int i=0; i+1<r; i++)
bs[t^1][i+1] |= bs[t][i];
}
if(x=='W' || x=='?') {
for(int i=0; i<r; i++)
bs[t^1][i] |= bs[t][i]>>1;
}
for(int i=0; i<r; i++) bs[t^1][i] &= fr[i];
t ^= 1;
}
int ans = 0;
for(int i=0; i<r; i++)
for(int j=0; j<c; j++)
ans += bs[t][i][j];
cout << ans << '\n';
return 0;
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |