Submission #410447

#TimeUsernameProblemLanguageResultExecution timeMemory
410447nichkeEaster Eggs (info1cup17_eastereggs)C++14
0 / 100
2 ms456 KiB
#include <bits/stdc++.h> using namespace std; vector< int > vi; vector< int > euler; vector< int > adj[513]; bool query(vector <int> ); void dfs(int v, int p = -1) { euler.push_back(v); for (int u : adj[v]) { if (u == p) continue; dfs(u, v); } } bool check_query(int x) { vi.clear(); for (int i = 0; i <= x; i++) { vi.push_back(i); } return query(vi); } int findEgg(int N, vector< pair <int, int> > bridges) { euler.clear(); for (int i = 1; i <= N; i++) { adj[i].clear(); } for (int i = 0; i < N - 1; i++) { adj[bridges[i].first].push_back(bridges[i].second); adj[bridges[i].second].push_back(bridges[i].first); } dfs(1); int res = -1; int l = 0, r = euler.size() - 1; while (l <= r) { int m = (l + r) / 2; if (check_query(m)) { r = m - 1; res = m; } else { l = m + 1; } } return euler[res]; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...