Submission #1146006

#TimeUsernameProblemLanguageResultExecution timeMemory
1146006sonyaEaster Eggs (info1cup17_eastereggs)C++20
100 / 100
8 ms508 KiB
#include <iostream> #include <vector> #include <queue> #include "grader.h" using namespace std; vector<int> t; int used[513]; int mid; vector<int> v[513]; int check_(int x){ vector<int> p; for(int i = 0; i <= x; i++){ p.push_back(t[i]); } return query(p); } void dfs(int beg){ used[beg] = 1; t.push_back(beg); for(int i = 0; i < v[beg].size(); i++){ int nb = v[beg][i]; if(!used[nb]){ dfs(nb); } } } void read(vector < pair < int, int > > bridges){ for(int i = 0; i < bridges.size(); i++){ v[bridges[i].first].push_back(bridges[i].second); v[bridges[i].second].push_back(bridges[i].first); } } int findEgg(int N, vector < pair < int, int > > bridges){ t.clear(); memset(used, 0, sizeof(used)); for(int i = 1; i <= 513; i++){ v[i].clear(); } read(bridges); dfs(1); int l = 0; int r = t.size()-1; while(l < r){ mid = (l+r)/2; if(check_(mid) == 1){ r = mid; } else { l = mid+1; } } return t[l]; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...