#include<bits/stdc++.h>
#include "grader.h"
#define maxn 515
#define fi first
#define se second
using namespace std;
using ii = pair<int, int>;
int x[maxn], id = 0;
vector<int> adj[maxn];
void dfs(int u, int dad) {
x[++id] = u;
for (int v : adj[u])
if (v != dad)
dfs(v, u);
}
int ASK(int mid) {
vector<int> cr;
for (int i = 1; i <= mid; i++) cr.emplace_back(x[i]);
return query(cr);
}
int findEgg(int N, vector<ii> bridges) {
for (ii x : bridges) {
adj[x.fi].emplace_back(x.se);
adj[x.se].emplace_back(x.fi);
}
dfs(1, 0);
int lo = 0, hi = N;
while (hi - lo > 1) {
int mid = (lo + hi) >> 1;
if (ASK(mid)) hi = mid;
else lo = mid;
}
id = 0;
for (int i = 1; i <= N; i++) adj[i].clear();
return x[hi];
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |