#include<iostream>
#include<bitset>
#include<string>
using namespace std;
int dx[]={-1,0,1,0},dy[]={0,1,0,-1};
int main(){
int r,c,m;cin>>r>>c>>m;
string a[r],s;for(int i=0;i<r;++i)cin>>a[i];cin>>s;
bitset<500>dp[500],tmp[500];
for(int i=0;i<r;++i)for(int j=0;j<c;++j)dp[i][j]=a[i][j]=='.';
for(char ch:s){
for(int i=0;i<r;++i)tmp[i].reset();
for(int i=0;i<r;++i)for(int j=0;j<c;++j)if(dp[i][j]){
for(int d=0;d<4;++d)if(ch=='?'||"NESW"[d]==ch){
int ni=i+dx[d],nj=j+dy[d];
if(ni>=0&&ni<r&&nj>=0&&nj<c&&a[ni][nj]=='.')tmp[ni][nj]=1;
}
}
swap(dp,tmp);
}
int ans=0;
for(int i=0;i<r;++i)ans+=dp[i].count();
cout<<ans;
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... |