# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
857404 | 2023-10-06T06:57:02 Z | chilinhxyzabc | Easter Eggs (info1cup17_eastereggs) | C++17 | 0 ms | 0 KB |
#include <bits/stdc++.h> #define ll long long #define infInt (int)1e9 + 1 // #define infLL 0x3f3f3f3f3f3f #define infLL (int)1e17 #define vt vector<int> #define vtt vector<vt> #define vttt vector<vtt> #define vtttt vector<vttt> #define pii pair<int, int> #define vpii vector<pii> #define endl '\n' #define all(a) a.begin(), a.end() #define _sort(a) sort(all(a)) #define bsUp(a, x) upper_bound(all(a), x) - a.begin() #define bsLow(a, x) lower_bound(all(a), x) - a.begin() #define rev(a) reverse(all(a)) #define uni(vals) vals.resize(distance(vals.begin(), unique(all(vals)))) #define int ll // #define in(a); ; // #define hi ; // #include "/home/phamngocthi/cp/see.cpp" using namespace std; vt st; void dfs(int u, int p, vector<vector<int>> &adj) { st.push_back(u); for(int v : adj[u]) { if(v == p) continue; dfs(v, u, adj); } } int query(vector<int> islands); int findEgg(int N, vector<pair<int,int>> bridges) { vector<vector<int>> adj(N + 1, vector<int>()); for(auto[u, v] : bridges) { adj[u].push_back(v); adj[v].push_back(u); } st.clear(); dfs(1, 0, adj); adj.clear(); int l = 0, r = st.size() - 1, res; while(l <= r) { int m = (l + r) / 2; vector<int> a; for(int i = 0; i <= m; i++) a.push_back(st[i]); if(query(a)) { res = st[m]; r = m - 1; } else { l = m + 1; } } return res; } // signed main() { // ios_base::sync_with_stdio(false);cin.tie(NULL); // }