Submission #888073

#TimeUsernameProblemLanguageResultExecution timeMemory
888073boyliguanhanNautilus (BOI19_nautilus)C++17
100 / 100
111 ms600 KiB
#include<bits/stdc++.h> using namespace std; bitset<512> tmp[502],grd[502],pos[502]; int main() { int r, c, m; cin >> r >> c >> m; for(int i = 1; i <= r; i++) { for(int j = 1; j <= c; j++) { char c = getchar(); if(j==1) c=getchar(); grd[i][j]=(c=='.'); } pos[i]=grd[i]; } for(int i = 0; i < m; i++) { char c = getchar(); if(!i) c=getchar(); for(int j = 1; j <= r; j++) tmp[j]=pos[j], pos[j].reset(); for(int j = 1; j <= r; j++) { if(c=='N'||c=='?') pos[j]|=tmp[j+1]; if(c=='S'||c=='?') pos[j]|=tmp[j-1]; if(c=='E'||c=='?') pos[j]|=tmp[j]<<1; if(c=='W'||c=='?') pos[j]|=tmp[j]>>1; pos[j]&=grd[j]; } } int ans = 0; for(int i = 1; i <= r; i++) ans+=pos[i].count(); cout << ans << '\n'; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...