Submission #1139140

#TimeUsernameProblemLanguageResultExecution timeMemory
1139140stdfloatEaster Eggs (info1cup17_eastereggs)C++20
26.40 / 100
5 ms460 KiB
#include <bits/stdc++.h> #include "grader.h" // #include "grader.cpp" using namespace std; mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count()); int rnd(int l, int r) { return l + rng() % (r - l + 1); } int findEgg (int n, vector<pair<int, int>> brg){ vector<int> E[n + 1]; for (int i = 0; i < n - 1; i++) { auto [x, y] = brg[i]; E[x].push_back(y); E[y].push_back(x); } vector<bool> vis(n + 1); while (true) { int x = -1, cnt = 0; for (int i = 1; i <= n; i++) { if (!vis[i]) { x = i; cnt++; } } if (cnt == 1) return x; vector<int> v; queue<int> q; vector<bool> visq(n + 1); q.push(x); visq[x] = true; while (!q.empty() && (int)v.size() < (cnt >> 1)) { int x = q.front(); q.pop(); v.push_back(x); for (auto i : E[x]) { if (!vis[i] && !visq[i]) { q.push(i); visq[i] = true; } } } visq.assign(n + 1, false); for (auto i : v) visq[i] = true; bool tr = query(v); for (int i = 1; i <= n; i++) if (!vis[i]) vis[i] = (tr ? !visq[i] : visq[i]); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...