제출 #1325167

#제출 시각아이디문제언어결과실행 시간메모리
1325167edga1Nautilus (BOI19_nautilus)C++20
100 / 100
192 ms916 KiB
#include <bits/stdc++.h>

using namespace std;

#define FIO ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define ll long long
#define pb push_back
#define fi first
#define se second

bitset<250005> grid,cur,lft,rgt;

int main(){
    FIO
    int r,c,m;
    cin>>r>>c>>m;
    for(int i=0; i<r; i++){
        for(int j=0; j<c; j++){
            char ch; cin>>ch;
            if(ch=='.'){
               grid[i*c+j]=1;
               if(j!=0) rgt[i*c+j]=1;
               if(j!=c-1) lft[i*c+j]=1;
            }
        }
    }
    cur=grid;
    string s; cin>>s;
    for(int i=0; i<m; i++){
        if(s[i]=='N') cur=(cur>>c)&grid;
        if(s[i]=='S') cur=(cur<<c)&grid;
        if(s[i]=='E') cur=(cur<<1)&rgt;
        if(s[i]=='W') cur=(cur>>1)&lft;
        if(s[i]=='?') cur=((cur>>c)&grid)|((cur<<c)&grid)|((cur<<1)&rgt)|((cur>>1)&lft);
    }
    cout<<cur.count();
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...