#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;
int findEgg (int n, vector <pair<int, int>> bridges){
ll i;
vector<vector<ll>> d(n + 1), g(n + 1);
ll mx = 0;
for(i=0;i<n - 1;i++){
auto [a, b] = bridges[i];
g[a].pb(b);
g[b].pb(a);
}
function<void(ll, ll, ll)> 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);
}
return;
};
dfs(1, 0, 1);
for(i=1;i<=n;i++){
for(auto j : d[i]) d[0].pb(j);
}
ll l = 0, r = n;
while(l + 1 < r){
ll m = (l + r) / 2;
vector<ll> q;
for(i=0;i<m;i++){
q.pb(d[0][i]);
}
if(query(q)) r = m;
else l = m;
}
return d[0][r - 1];
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |