제출 #513819

#제출 시각아이디문제언어결과실행 시간메모리
513819stefantagaNautilus (BOI19_nautilus)C++14
100 / 100
159 ms157344 KiB
#include <bits/stdc++.h> #pragma GCC optimize("Ofast") using namespace std; bitset <502> din[502][5005]; bitset <502> sea[505]; char sal[5005],ch; int sum,i,j,n,t,m,k; int main() { ios_base :: sync_with_stdio(false); cin.tie(0); #ifdef HOME ifstream cin("date.in"); ofstream cout("date.out"); #endif // HOME cin>> n >> m >> t; for (i=1;i<=n;i++) { for (j=1;j<=m;j++) { cin>>ch; if (ch=='#') { sea[i][j]=0; din[i][0][j]=0; } else { sea[i][j]=1; din[i][0][j]=1; } } } cin>>(sal+1); for (k=1;k<=t;k++) { for (i=1;i<=n;i++) { if (sal[k]=='S') { din[i][k] = din[i-1][k-1] & sea[i]; } else if (sal[k]=='E') { din[i][k] = (din[i][k-1] << 1) & sea[i]; } else if (sal[k]=='N') { din[i][k] = din[i+1][k-1] & sea[i]; } else if (sal[k]=='W') { din[i][k] = (din[i][k-1] >>1) & sea[i]; } else { din[i][k] = (din[i+1][k-1] | (din[i][k-1]<<1) | din[i-1][k-1] | (din[i][k-1]>>1) ) & sea[i]; } } } for (i=1;i<=n;i++) { sum=sum+din[i][t].count(); } cout<<sum; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...