Submission #1220387

#TimeUsernameProblemLanguageResultExecution timeMemory
1220387mariamtsagareliEaster Eggs (info1cup17_eastereggs)C++20
Compilation error
0 ms0 KiB
#include <bits/stdc++.h> using namespace std; int q(const vector<int>& v) { cout << "? " << v.size(); for (int x : v) cout << ' ' << x; cout << '\n' << flush; int r; cin >> r; return r; } int findEgg(int N, const vector<pair<int,int>>& B) { vector<vector<int>> g(N+1); for (auto& e : B) { g[e.first].push_back(e.second); g[e.second].push_back(e.first); } vector<int> s(N+1,1), z(N+1), p(N+1), t; function<int(int,int)> d = [&](int u,int par) { p[u]=par; z[u]=1; t.push_back(u); for (int w: g[u]) if (w!=par && s[w]) z[u]+=d(w,u); return z[u]; }; function<int()> f = [&]() { t.clear(); int r=1; while (!s[r]) r++; d(r,0); int m=t.size(); for (int u: t) { int mx=m-z[u]; for (int w: g[u]) if (w!=p[u] && s[w]) mx=max(mx,z[w]); if (mx*2<=m) return u; } return t[0]; }; function<void(int,int,vector<int>&)> e = [&](int u,int par,vector<int>& c) { c.push_back(u); for (int w: g[u]) if (w!=par && s[w]) e(w,u,c); }; while (1) { vector<int> cand; for (int i=1;i<=N;i++) if (s[i]) cand.push_back(i); if (cand.size()==1) return cand[0]; int u=f(); if (q(vector<int>{u})) return u; vector<vector<int>> A; for (int w: g[u]) if (s[w]) { vector<int> tmp; e(w,u,tmp); A.push_back(tmp); } int l=0,r=A.size(); while (r-l>1) { int m=(l+r)/2; vector<int> v={u}; for (int i=l;i<m;i++) for (int x:A[i]) v.push_back(x); if (q(v)) r=m; else l=m; } vector<int> K=A[l]; fill(s.begin(),s.end(),0); for (int x:K) s[x]=1; } }

Compilation message (stderr)

/usr/bin/ld: /tmp/cceBfOk5.o: in function `main':
grader.cpp:(.text.startup+0x1e7): undefined reference to `findEgg(int, std::vector<std::pair<int, int>, std::allocator<std::pair<int, int> > >)'
collect2: error: ld returned 1 exit status