Submission #1048824

#TimeUsernameProblemLanguageResultExecution timeMemory
1048824vjudge1Easter Eggs (info1cup17_eastereggs)C++17
100 / 100
14 ms600 KiB
#include <bits/stdc++.h> #include "grader.h" using namespace std; using ll = long long; int findEgg (int _N, vector<pair<int, int>> bridges){ int N = _N; vector<vector<int>> G(N + 5); for (pair<int, int>&x : bridges){ int u = x.first, v = x.second; G[u].emplace_back(v); G[v].emplace_back(u); } vector<int> minDist(N + 5), rev(N + 5); queue<int> q; q.emplace(1); minDist[1] = 1; rev[1] = 1; int cnt = 1; while(q.size()){ int u = q.front(); q.pop(); for (int &v : G[u]){ if (!minDist[v]){ q.emplace(v); minDist[v] = ++cnt; rev[minDist[v]] = v; } } } auto check = [&](int x) -> bool{ vector<int> node; for (int i = 1; i <= N; ++i) if(minDist[i] <= x){ node.emplace_back(i); } return query(node); }; int l = 1, r = N; while (l < r){ int m = (l + r) >> 1; if(check(m)) r = m; else l = m + 1; } return rev[l]; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...