Submission #1187576

#TimeUsernameProblemLanguageResultExecution timeMemory
1187576omerkingNautilus (BOI19_nautilus)C++20
66 / 100
1095 ms840 KiB
#include<iostream> #include<bitset> #include<string> using namespace std; int dx[]={-1,0,1,0},dy[]={0,1,0,-1}; int main(){ int r,c,m;cin>>r>>c>>m; string a[r],s;for(int i=0;i<r;++i)cin>>a[i];cin>>s; bitset<500>dp[500],tmp[500]; for(int i=0;i<r;++i)for(int j=0;j<c;++j)dp[i][j]=a[i][j]=='.'; for(char ch:s){ for(int i=0;i<r;++i)tmp[i].reset(); for(int i=0;i<r;++i)for(int j=0;j<c;++j)if(dp[i][j]){ for(int d=0;d<4;++d)if(ch=='?'||"NESW"[d]==ch){ int ni=i+dx[d],nj=j+dy[d]; if(ni>=0&&ni<r&&nj>=0&&nj<c&&a[ni][nj]=='.')tmp[ni][nj]=1; } } swap(dp,tmp); } int ans=0; for(int i=0;i<r;++i)ans+=dp[i].count(); cout<<ans; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...