Submission #1146430

#TimeUsernameProblemLanguageResultExecution timeMemory
1146430ReLiceEaster Eggs (info1cup17_eastereggs)C++20
0 / 100
290 ms196608 KiB
#include "grader.h" #include <bits/stdc++.h> #define ll int #define ld double #define pb push_back #define pf push_front #define ins insert #define fr first #define sc second #define endl "\n" #define all(x) x.begin(), x.end() using namespace std; const ll M = 1e3 + 5; vector<vector<ll>> d(M), g(M); ll mx = 0; void dfs(ll v, ll p, ll dd){ d[dd].pb(v); mx = max(mx, dd); for(auto i : g[v]){ if(i == p) continue; dfs(i, v, dd + 1); } } int findEgg (int n, vector <pair<int, int>> bridges){ ll i; for(i=0;i<n - 1;i++){ auto [a, b] = bridges[i]; g[a].pb(b); g[b].pb(a); } dfs(1, 0, 1); ll l = 0, r = mx; while(l + 1 < r){ ll m = (l + r) / 2; vector<ll> q; for(i=1;i<=m;i++){ for(auto j : d[i]) q.pb(j); } if(query(q)) r = m; else l = m; } ll x = r; l = 0, r = d[x].size(); while(l + 1 < r){ ll m = (l + r) / 2; vector<ll> q; for(i=1;i<x;i++){ for(auto j : d[i]) q.pb(j); } for(i=0;i<m;i++) q.pb(d[x][i]); if(query(q)) r = m; else l = m; } return d[x][r - 1]; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...