# include <iostream>
# include <vector>
# include "grader.h"
//# include "grader.cpp"
using namespace std;
const int MAX=513;
vector<int> adj[MAX];
vector<int> ord;
void dfs(int curr, int par)
{
ord.push_back(curr);
for(int nxt: adj[curr])
{
if(nxt==par) continue;
dfs(nxt,curr);
}
}
int findEgg (int N, vector < pair < int, int > > bridges)
{
ord.clear();
for(int i=1;i<=N;i++) adj[i].clear();
for(pair<int,int> pa: bridges)
{
int u=pa.first,v=pa.second;
adj[u].push_back(v);
adj[v].push_back(u);
}
dfs(1,0);
int l=0,r=N-1;
while(l!=r)
{
int mid=(l+r)/2;
vector<int> v;
for(int i=l;i<=mid;i++) v.push_back(ord[i]);
if(query(v)) r=mid;
else l=mid+1;
}
return ord[l];
}
/*
14
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
10 11
11 12
12 13
13 14
14
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
*/
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |