Submission #226917

#TimeUsernameProblemLanguageResultExecution timeMemory
226917PajarajaNautilus (BOI19_nautilus)C++17
100 / 100
249 ms1144 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...