Submission #199172

#TimeUsernameProblemLanguageResultExecution timeMemory
199172Bagritsevich_StepanEaster Eggs (info1cup17_eastereggs)C++14
100 / 100
38 ms380 KiB
#include <bits/stdc++.h> #include "grader.h" using namespace std; #define mp make_pair #define pb push_back #define fast_io ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); #define pii pair < int, int > #define fs first #define sc second #define getfiles ifstream cin("input.txt"); ofstream cout("output.txt"); #define sz(x) (int)x.size() #define all(x) x.begin(), x.end() #define rall(x) x.rbegin(), x.rend() typedef long long ll; typedef long double ld; const int maxn = 2055; vector < int > g[maxn], islands; int verts[maxn], timer; bool used[maxn]; void dfs(int v) { used[v] = true; verts[timer++] = v; for (int j = 0; j < sz(g[v]); j++) { int to = g[v][j]; if (!used[to]) dfs(to); } } bool prov(int max_ind) { islands.clear(); for (int i = 0; i <= max_ind; i++) islands.pb(verts[i] + 1); return query(islands); } int bin_search() { int l = -1, r = timer - 1; while (r - l > 1) { int m = (l + r) / 2; if (prov(m)) r = m; else l = m; } return verts[r] + 1; } int findEgg(int n, vector < pii > bridges) { for (int i = 0; i < n; i++) { g[i].clear(); used[i] = false; } for (int i = 0; i < sz(bridges); i++) { int u = bridges[i].fs, v = bridges[i].sc; u--; v--; g[u].pb(v); g[v].pb(u); } timer = 0; dfs(0); return bin_search(); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...