Submission #389243

#TimeUsernameProblemLanguageResultExecution timeMemory
389243balbitEaster Eggs (info1cup17_eastereggs)C++14
0 / 100
3091 ms328 KiB
#include <bits/stdc++.h> #ifndef BALBIT #include "grader.h" #endif using namespace std; #define ll long long #define pii pair<int, int> #define f first #define s second #define REP(i,n) for (int i = 0; i<n; ++i) #define REP1(i,n) for (int i = 1; i<=n; ++i) #define SZ(x) (int)((x).size()) #define ALL(x) (x).begin(), (x).end() #define pb push_back #ifdef BALBIT #define bug(...) cerr<<"#"<<__LINE__<<": "<<#__VA_ARGS__<<"- ", _do(__VA_ARGS__) template<typename T> void _do(T && x) {cerr<<x<<endl;} template<typename T, typename ...S> void _do(T && x, S && ...y) {cerr<<x<<", "; _do(y...);} #else #define bug(...) #define endl '\n' #endif // BALBITs const int maxn = 600; vector<int> g[maxn]; bool maybe[maxn]; int need = 0; vector<int> tk; vector<int> ord; void dfs(int v, int p) { ord.pb(v); for (int u: g[v]) { if (u != p) { dfs(u,v); } } } #ifdef BALBIT bool query(vector<int> rr) { for (int x : rr) cout<<x<<' '; cout<<endl; bug("??"); int y; cin>>y; return y; } #endif // BALBIT int findEgg (int n, vector < pair < int, int > > bridges) { REP1(i,n) g[i].clear(); for (pii p: bridges) { g[p.f].pb(p.s); g[p.s].pb(p.f); } fill(maybe, maybe+n+1,1); ord.clear(); dfs(1, -1); int left = n; while (left > 1) { need=left/2; tk.clear(); REP(i,n) { int v = ord[i]; if (maybe[v]) { --need; } tk.pb(v); if (need == 0) break; } sort(ALL(tk)); if (query(tk)) { left = left/2; fill(maybe, maybe+n+1, 0); for (int y : tk) maybe[y] = 1; }else{ left = left - left/2; for (int y : tk) maybe[y] = 0; } } while (1); REP1(i,n) { if (maybe[i]) return i; } while (1); // assert(0); } #ifdef BALBIT signed main(){ ios::sync_with_stdio(0), cin.tie(0); bug(findEgg(5, {{1, 2}, {1, 3}, {2,4}, {4,5}})); } #endif
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...