Submission #958172

#TimeUsernameProblemLanguageResultExecution timeMemory
958172ezzzayNautilus (BOI19_nautilus)C++14
66 / 100
468 ms250832 KiB
#include<bits/stdc++.h> using namespace std; #define ff first #define int long long #define ss second #define pb push_back const int N=5e3+5; const int NM=501; char arr[NM][NM]; bool dp[NM][NM][NM]; bitset<N>vis[NM]; signed main(){ int n,m,k; cin>>n>>m>>k; for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ cin>>arr[i][j]; } } string s; cin>>s; for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ if(arr[i][j]=='#')continue; dp[0][i][j]=1; } } for(int l=0;l<k;l++){ for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ if(arr[i][j]=='#')continue; if(s[l]=='N'){ dp[l+1][i][j]|=dp[l][i+1][j]; } if(s[l]=='E'){ dp[l+1][i][j]|=dp[l][i][j-1]; } if(s[l]=='S'){ dp[l+1][i][j]|=dp[l][i-1][j]; } if(s[l]=='W'){ dp[l+1][i][j]|=dp[l][i][j+1]; } if(s[l]=='?'){ dp[l+1][i][j]|=dp[l][i+1][j]; dp[l+1][i][j]|=dp[l][i][j+1]; dp[l+1][i][j]|=dp[l][i-1][j]; dp[l+1][i][j]|=dp[l][i][j-1]; } } } } int cnt=0; for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ if(arr[i][j]=='#')continue; if(dp[k][i][j])cnt++; } } cout<<cnt; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...