Submission #272802

#TimeUsernameProblemLanguageResultExecution timeMemory
272802KayacanVEaster Eggs (info1cup17_eastereggs)C++14
100 / 100
26 ms384 KiB
#include <bits/stdc++.h> using namespace std; const int nmax = (1 << 9) + 10; bool query(vector < int > v); int n, all[nmax]; vector < int > g[nmax]; void dfs(int node, int dad) { all[++n] = node; for (auto &it: g[node]) if (it != dad) dfs(it, node); } bool do_query(int n) { vector < int > res; for (int i = 1; i <= n; ++i) res.push_back(all[i]); return query(res); } void clear_(int n) { for (int i = 1; i <= n; ++i) g[i].clear(); } int findEgg(int dim, vector < pair < int, int > > edges) { clear_(dim); for (int i = 0; i < dim - 1; ++i) { int x, y; tie(x, y) = edges[i]; g[x].push_back(y); g[y].push_back(x); } n = 0; dfs(1, 0); int left = 1; int right = n - 1; int res = n; while (left <= right) { int mid = left + (right - left) / 2; if (do_query(mid) == 1) res = mid, right = mid - 1; else left = mid + 1; } res = all[res]; return res; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...