#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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |