# 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;
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 + 1) / 2;
if (query(vector<int>(ord.begin(), ord.begin() + mid))) r = mid - 1;
else l = mid;
}
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... |