Submission #754124

#TimeUsernameProblemLanguageResultExecution timeMemory
754124thimote75Easter Eggs (info1cup17_eastereggs)C++14
100 / 100
24 ms376 KiB
#include <bits/stdc++.h> #include "grader.h" using namespace std; using idata = vector<int>; using graph = vector<idata>; using ipair = pair<int, int>; using ipdata = vector<ipair>; graph roads; idata tour; void dfs (int node, int parent) { tour.push_back(node); for (int next : roads[node]) if (next != parent) dfs(next, node); } int query (int size) { idata query_tour(size); for (int i = 0; i < size; i ++) query_tour[i] = tour[i]; return query(query_tour); } int result () { int a = 0; int b = tour.size(); while (b - a > 1) { int c = (a + b) >> 1; if (query(c)) b = c; else a = c; } return tour[b - 1]; } int findEgg (int N, ipdata bridges) { roads.clear (); roads.resize(N + 1); tour .clear (); for (ipair bridge : bridges) { roads[bridge.first ].push_back(bridge.second); roads[bridge.second].push_back(bridge.first ); } dfs(1, -1); return result(); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...