#pragma GCC optimize("O3")//tle?
#include<bits/stdc++.h>//
#define ll long long
#define endl "\n"
#define AI ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
using namespace std;
vector<ll>pr;
vector<ll>ma;
void solve()
{
ll r,c,x,m,i,j;
cin>>r>>c>>m;
ll dp[r][c][2];
char ar[r][c];
string yol;
for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
{
cin>>ar[i][j];
dp[i][j][0]=1;
if(ar[i][j]=='#')
dp[i][j][0]=0;
}
}
cin>>yol;
ll say=0;
for(x=0;x<m;x++)
{
say=0;
for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
{
dp[i][j][(x+1)%2]=0;
if(ar[i][j]=='#')
continue;
if(yol[x]=='?')
{
if(i!=0 and dp[i-1][j][x%2])
dp[i][j][(x+1)%2]=1;
else if(i!=r-1 and dp[i+1][j][x%2])
dp[i][j][(x+1)%2]=1;
else if(j!=0 and dp[i][j-1][x%2])
dp[i][j][(x+1)%2]=1;
else if(j!=c-1 and dp[i][j+1][x%2])
dp[i][j][(x+1)%2]=1;
}
else if(yol[x]=='N')
{
if(i!=r-1 and dp[i+1][j][x%2])
dp[i][j][(x+1)%2]=1;
}
else if(yol[x]=='S')
{
if(i!=0 and dp[i-1][j][x%2])
dp[i][j][(x+1)%2]=1;
}
else if(yol[x]=='W')
{
if(j!=c-1 and dp[i][j+1][x%2])
dp[i][j][(x+1)%2]=1;
}
else if(yol[x]=='E')
{
if(j!=0 and dp[i][j-1][x%2])
dp[i][j][(x+1)%2]=1;
}
if(dp[i][j][(x+1)%2])
say++;
}
}
}
cout<<say;
}
int main()
{
AI
//freopen("input.txt", "r", stdin);
//freopen("output.txt", "w", stdout);
solve();
}//3 9 5 14
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |