Submission #484594

#TimeUsernameProblemLanguageResultExecution timeMemory
484594groupATSUPatkice (COCI20_patkice)C++14
50 / 50
1 ms716 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long const ll inf=1e9; const int maxn=1e3; const ll mod=998244353; int a,b; char g[maxn][maxn]; int used[maxn][maxn]; void clr(){ for(int i=1;i<=a;i++){ for(int t=1;t<=b;t++)used[i][t]=0; } } vector <pair<int,char>> ans; void DFS(int x,int y,int ind,int cnt){ if(g[x][y]=='.' || used[x][y]==1){ return ; } if(g[x][y]=='x'){ used[x][y]=1; if(ind==2)ans.push_back({cnt,'N'}); else if(ind==1)ans.push_back({cnt,'S'}); else if(ind==3)ans.push_back({cnt,'E'}); else ans.push_back({cnt,'W'}); return ; } used[x][y]=1; if(g[x][y]=='v')DFS(x+1,y,ind,cnt+1); if(g[x][y]=='^')DFS(x-1,y,ind,cnt+1); if(g[x][y]=='>')DFS(x,y+1,ind,cnt+1); if(g[x][y]=='<')DFS(x,y-1,ind,cnt+1); } void solve(){ cin>>a>>b; pair <int,int> start,finish; for(int i=1;i<=a;i++){ for(int t=1;t<=b;t++){ cin>>g[i][t]; if(g[i][t]=='o'){ start.first=i; start.second=t; } if(g[i][t]=='x'){ finish.first=i; finish.second=t; } } } DFS(start.first+1,start.second,1,1); clr(); DFS(start.first-1,start.second,2,1); clr(); DFS(start.first,start.second+1,3,1); clr(); DFS(start.first,start.second-1,4,1); if(ans.size()!=0){ sort(ans.begin(),ans.end()); cout<<":)"<<endl; cout<<ans[0].second; return ; }else{ cout<<":("; } } int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); int t=1; //cin>>t; while(t--){ solve(); cout<<'\n'; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...