Submission #1192843

#TimeUsernameProblemLanguageResultExecution timeMemory
1192843gmlEaster Eggs (info1cup17_eastereggs)C++20
100 / 100
9 ms524 KiB
#include <bits/stdc++.h> #include "grader.h" using namespace std; int findEgg(int N, vector<pair<int, int>> bridges) { int n = N; vector<vector<int>> tree(n); vector<int> lb(n), ub(n); function<void(int,int,int&)> Euler_tour = [&](int u, int pred, int & id) { lb[u] = id++; for (int v : tree[u]) if (v != pred) Euler_tour(v, u, id); ub[u] = id - 1; }; for(auto [u, v] : bridges) { u--, v--; // assuming input is 1-based tree[u].push_back(v); tree[v].push_back(u); } int root = 0, id = 0; Euler_tour(root, -1, id); vector<int> v(n); for (int i = 0; i < n; i++) v[lb[i]] = i + 1; int l = 0, r = n - 1; while (l < r) { int m = (r - l) / 2; int up = (l + m + 1); vector<int> ask; for (int i = 0; i < up; i++) { ask.push_back(v[i]); } bool b = query(ask); // call the function that answers if (b) r = up - 1; else l = up; } return v[l]; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...