제출 #1166474

#제출 시각아이디문제언어결과실행 시간메모리
1166474irmuunNautilus (BOI19_nautilus)C++20
100 / 100
124 ms544 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define pb push_back #define ff first #define ss second #define all(s) s.begin(),s.end() #define rall(s) s.rbegin(),s.rend() int main(){ ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); int r,c,m; cin>>r>>c>>m; vector<bitset<500>>a(r),b(r); for(ll i=0;i<r;i++){ for(int j=0;j<c;j++){ char s; cin>>s; if(s=='#'){ a[i][j]=0; b[i][j]=0; } else{ a[i][j]=1; b[i][j]=1; } } } string s; cin>>s; for(int i=0;i<m;i++){ vector<bitset<500>>f(r); if(s[i]=='N'||s[i]=='?'){//x-- for(int x=1;x<r;x++){ f[x-1]|=a[x]; } } if(s[i]=='S'||s[i]=='?'){//x++ for(int x=0;x<r-1;x++){ f[x+1]|=a[x]; } } if(s[i]=='W'||s[i]=='?'){//y-- for(int x=0;x<r;x++){ f[x]|=(a[x]>>1); } } if(s[i]=='E'||s[i]=='?'){//y++ for(int x=0;x<r;x++){ f[x]|=(a[x]<<1); } } for(int x=0;x<r;x++){ a[x]=(f[x]&b[x]); } } int ans=0; for(int i=0;i<r;i++){ for(int j=0;j<c;j++){ if(a[i][j]) ans++; } } cout<<ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...