Submission #389468

#TimeUsernameProblemLanguageResultExecution timeMemory
389468abc864197532Easter Eggs (info1cup17_eastereggs)C++17
0 / 100
3085 ms328 KiB
#include <bits/stdc++.h> using namespace std; #define lli long long int #define pb push_back #define eb emplace_back #define mp make_pair #define test(x) cout << #x << ' ' << x << endl #define printv(x) { \ for (auto a : x) cout << a << ' '; \ cout << endl; \ } #define pii pair<int, int> #define pll pair<lli, lli> #define X first #define Y second #define all(x) x.begin(), x.end() #define rall(x) x.rbegin(), x.rend() const int N = 513, abc = 864197532; vector <int> adj[N]; int query(vector <int> islands); int findEgg(int n, vector <pii> bridges) { for (pii i : bridges) { adj[i.X].pb(i.Y); adj[i.Y].pb(i.X); } vector <bool> dead(n + 1, false); dead[0] = true; while (count(all(dead), false) > 1) { int cursz = count(all(dead), false); vector <int> cur; vector <bool> in(n + 1, false); int not_dead_cnt = 0; function<void(int, int)> dfs = [&](int v, int pa) { if (not_dead_cnt < cursz / 2) cur.pb(v), not_dead_cnt += !dead[v], in[v] = true; for (int u : adj[v]) if (u != pa) { dfs(u, v); } }; dfs(1, -1); int ans = query(cur); for (int i = 1; i <= n; ++i) if (!dead[i] && in[i] != ans) { dead[i] = true; } } for (int i = 1; i <= n; ++i) if (!dead[i]) { return i; } }

Compilation message (stderr)

eastereggs.cpp: In function 'int findEgg(int, std::vector<std::pair<int, int> >)':
eastereggs.cpp:29:36: warning: control reaches end of non-void function [-Wreturn-type]
   29 |     vector <bool> dead(n + 1, false);
      |                                    ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...