Submission #1145803

#TimeUsernameProblemLanguageResultExecution timeMemory
1145803bbbirosEaster Eggs (info1cup17_eastereggs)C++20
0 / 100
1 ms1232 KiB
#include <vector> #include <queue> #include "grader.h" #define endl '\n' #define ll long long using namespace std; int n; int used[1024]; vector <int> vo[1024]; vector <int> v[1024]; vector <int> vd[1024]; void reset() { for(int i=1;i<514;i++) used[i]=0; } void bfs() { reset(); queue<int> q; q.push(1); used[1]=1; while(!q.empty()) { int c=q.front(); q.pop(); for(int i=0;i<vo[c].size();i++) { int nb=vo[c][i]; if(!used[nb]) { used[nb]=1; v[c].push_back(nb); q.push(nb); } } } } vector<int> c; void dfs(int beg) { used[beg]=1; for(int i=0;i<c.size();i++) { vd[c[i]].push_back(beg); } c.push_back(beg); for(int i=0;i<v[beg].size();i++) { int nb=v[beg][i]; if(!used[nb]) { dfs(nb); } } c.pop_back(); } int dnc(int beg) { while(vd[beg].size()>1) { for(int i=0;i<v[beg].size();i++) { int nb=v[beg][i]; //for(int j=0;j<vd[nb].size();j++)cout<<vd[nb][j]<<" "; //cout<<endl; if(query(vd[nb])==1) { beg=nb; break; continue; } } return beg; } return beg; } int findEgg (int N, vector < pair < int, int > > b) { n=N; for(int i=1;i<=512;i++) { vo[i].clear(); v[i].clear(); vd[i].clear(); vd[i].push_back(i); } reset(); for(int i=0;i<b.size();i++) { vo[b[i].first].push_back(b[i].second); vo[b[i].second].push_back(b[i].first); } bfs(); reset(); dfs(1); return dnc(1); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...