#include <bits/stdc++.h>
#include "grader.h"
using namespace std;
int findEgg(int N, vector <pair <int, int>> bridges){
vector <vector <int>> adj(N);
for (auto [u, v] : bridges){
-- u, -- v;
adj[u].push_back(v);
adj[v].push_back(u);
}
vector <int> ord;
function <void(int, int)> dfs = [&](int u, int p) {
ord.push_back(u);
for (int v : adj[u]) if (v != p)
dfs(v, u);
};
dfs(0, -1);
int low = 0, high = N - 1;
while (low < high){
int mid = low + high >> 1;
vector <int> ask;
for (int i = 0; i <= mid; ++ i)
ask.push_back(ord[i] + 1);
if (query(ask)) high = mid;
else low = mid + 1;
}
return ord[low] + 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... |