제출 #925977

#제출 시각아이디문제언어결과실행 시간메모리
925977vjudge1Nautilus (BOI19_nautilus)C++17
66 / 100
164 ms262144 KiB
#include <bits/stdc++.h> using namespace std; #define all(a) a.begin(),a.end() #define pb push_back #define vt vector #define endl '\n' typedef long long ll; const ll mod=1e9+7; const ll inf=mod; const int N=5e6+4; int n,m,k; char c[600][600]; int dp[600][600][600]; void solve(){ cin>>n>>m>>k; for(int i=1; i<=n; ++i){ for(int j=1; j<=m; ++j){ cin>>c[i][j]; if(c[i][j]!='#') dp[0][i][j]=1; } } string s; cin>>s; s='#'+s; for(int x=1; x<=k; ++x){ for(int i=1; i<=n; ++i){ for(int j=1; j<=m; ++j){ if(c[i][j]=='#') continue; if((s[x]=='N' || s[x]=='?') && dp[x-1][i+1][j]) dp[x][i][j]=1; if((s[x]=='S' || s[x]=='?') && dp[x-1][i-1][j]) dp[x][i][j]=1; if((s[x]=='E' || s[x]=='?') && dp[x-1][i][j-1]) dp[x][i][j]=1; if((s[x]=='W' || s[x]=='?') && dp[x-1][i][j+1]) dp[x][i][j]=1; } } } int ans=0; for(int i=1; i<=n; ++i) for(int j=1; j<=m; ++j){ ans+=dp[k][i][j]; } cout<<ans<<endl; } int main(){ ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); int tt=1; // cin>>tt; while(tt--) { solve(); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...