This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
#define MAXN 507
using namespace std;
bitset<MAXN*MAXN> bs,tr;
int n,m,p;
int main()
{
cin>>n>>m>>p;
string s;
for(int i=0;i<m+2;i++) bs[i]=0;
for(int i=0;i<m+2;i++) bs[(n+1)*(m+2)+i]=0;
for(int i=1;i<=n;i++)
{
cin>>s;
bs[i*(m+2)]=bs[i*(m+2)+m+1]=0;
for(int j=1;j<=m;j++) {if(s[j-1]=='#') bs[i*(m+2)+j]=0; else bs[i*(m+2)+j]=1;}
}
cin>>s;
tr=bs;
for(int ttt=0;ttt<p;ttt++)
{
if(s[ttt]=='S') tr=bs&(tr<<(m+2));
if(s[ttt]=='N') tr=bs&(tr>>(m+2));
if(s[ttt]=='E') tr=bs&(tr<<1);
if(s[ttt]=='W') tr=bs&(tr>>1);
if(s[ttt]=='?') tr=bs&((tr>>1)|(tr<<1)|tr>>(m+2)|tr<<(m+2));
}
int res=0;
for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) if(tr[i*(m+2)+j]) res++;
cout<<res;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |