Submission #1215713

#TimeUsernameProblemLanguageResultExecution timeMemory
1215713MalixNautilus (BOI19_nautilus)C++20
0 / 100
136 ms327680 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef vector<int> vi; typedef vector<vi> vii; typedef pair<int,int> pi; typedef vector<pi> pii; typedef tuple<int,int,int> ti; typedef vector<ll> li; typedef vector<li> lii; #define REP(i,a,b) for(int i=a;i<b;i++) #define F first #define S second #define PB push_back #define LSOne(s) ((s)&(-s)) #define all(x) x.begin(),x.end() ll INF=1000000000000000010; int inf=1e9+10; ll M=1e9+7; bool a[5001][500][500]; int main() { ios::sync_with_stdio(0); cin.tie(0); int n,m,k;cin>>n>>m>>k; memset(a,0,sizeof(a)); REP(i,0,n)REP(j,0,m){ char c;cin>>c; a[0][i][j]=(c=='.'); } string s;cin>>s; vector<pi> loc={{1,0},{-1,0},{0,1},{0,-1}}; REP(i,0,k){ if(s[i]=='?')REP(x,0,n)REP(y,0,m)if(a[i][x][y])for(auto [u,v]:loc)if(x+u>=0&&x+u<n&&y+v>=0&&y+v<m&&a[0][x+u][y+v])a[i+1][x+u][y+v]=1; if(s[i]!='?'){ int pos=0; if(s[i]=='N')pos=1; else if(s[i]=='E')pos=2; else if(s[i]=='W')pos=3; auto [u,v]=loc[pos]; REP(x,0,n)REP(y,0,m)if(a[i][x][y])if(x+u>=0&&x+u<n&&y+v>=0&&y+v<m&&a[0][x+u][y+v])a[i+1][x+u][y+v]=1; } } int ans=0; REP(i,0,n)REP(j,0,m)if(a[k][i][j])ans++; cout<<ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...