제출 #1139147

#제출 시각아이디문제언어결과실행 시간메모리
1139147stdfloatEaster Eggs (info1cup17_eastereggs)C++20
26.40 / 100
5 ms472 KiB
#include <bits/stdc++.h> #include "grader.h" // #include "grader.cpp" using namespace std; 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; int z = query(v); assert(~z); bool tr = z; 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...