Submission #1305421

#TimeUsernameProblemLanguageResultExecution timeMemory
1305421Davdav1232Nautilus (BOI19_nautilus)C++20
100 / 100
101 ms760 KiB
#pragma GCC optimize("Ofast")
#include <bits/stdc++.h>
using namespace std;
bitset<250500> b, available;
int main(){
    string s;
    int r, c, m; cin>>r>>c>>m>>s;
    for(int i=0; i<r; i++){
        for(int j=0; j<c; j++) if(s[j]=='.') available[j+(c+1)*i]=1;
        cin>>s;
    }
    b=available;
    for(int l=0; l<m; l++){
        if(s[l]=='?') b=((b<<1) | (b>>1) | (b>>(c+1)) | (b<<(c+1))) & available;
        if(s[l]=='E') b=(b<<1)&available;
        if(s[l]=='W') b=(b>>1)&available;
        if(s[l]=='N') b=(b>>(c+1))&available;
        if(s[l]=='S') b=(b<<(c+1))&available;
    }
    cout<<b.count();
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...