#pragma GCC optimize("Ofast")
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
typedef vector<int> vi;
typedef vector<ll> vl;
typedef vector<vi> vvi;
typedef vector<vl> vvl;
typedef vector<pii> vii;
int main(){
int r, c, m; cin>>r>>c>>m;
bool mm[r][c][2];
bool taken[r][c];
for(int i=0; i<r; i++){
for(int j=0; j<c; j++){
taken[i][j]=0;
}
}
for(int i=0; i<r; i++){
string s; cin>>s;
for(int j=0; j<c; j++){
if(s[j]=='#'){
taken[i][j]=1;
}
}
}
for(int i=0; i<r; i++){
for(int j=0; j<c; j++){
mm[i][j][0]=!taken[i][j];
}
}
string way; cin>>way;
int ind=0;
for(int l=0; l<m; l++){
ind=1-ind;
if(way[l]=='?'){
for(int i=0; i<r; i++){
for(int j=0; j<c; j++){
if(taken[i][j]){
mm[i][j][ind]=0;
continue;
}
if((i && mm[i-1][j][1-ind]) || (j && mm[i][j-1][1-ind]) || (i<r-1 && mm[i+1][j][1-ind]) || (j<c-1 && mm[i][j+1][1-ind])){
mm[i][j][ind]=1;
}
else mm[i][j][ind]=0;
}
}
}
else if(way[l]=='N'){
for(int i=0; i<r; i++){
for(int j=0; j<c; j++){
if(taken[i][j]){
mm[i][j][ind]=0;
continue;
}
if((i<r-1 && mm[i+1][j][1-ind])){
mm[i][j][ind]=1;
}
else mm[i][j][ind]=0;
}
}
}
else if(way[l]=='S'){
for(int i=0; i<r; i++){
for(int j=0; j<c; j++){
if(taken[i][j]){
mm[i][j][ind]=0;
continue;
}
if((i && mm[i-1][j][1-ind])){
mm[i][j][ind]=1;
}
else mm[i][j][ind]=0;
}
}
}
else if(way[l]=='E'){
for(int i=0; i<r; i++){
for(int j=0; j<c; j++){
if(taken[i][j]){
mm[i][j][ind]=0;
continue;
}
if((j && mm[i][j-1][1-ind])){
mm[i][j][ind]=1;
}
else mm[i][j][ind]=0;
}
}
}
else if(way[l]=='W'){
for(int i=0; i<r; i++){
for(int j=0; j<c; j++){
if(taken[i][j]){
mm[i][j][ind]=0;
continue;
}
if((j<c-1 && mm[i][j+1][1-ind])){
mm[i][j][ind]=1;
}
else mm[i][j][ind]=0;
}
}
}
}
int ans=0;
for(int i=0; i<r; i++){
for(int j=0; j<c; j++){
if(mm[i][j][ind]){
//cout<<i<<" "<<j<<"\n";
ans++;
}
}
}
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... |