#include <iostream>
#include <vector>
#include <queue>
#include "grader.h"
using namespace std;
vector<int> t;
int used[513];
int mid;
vector<int> v[513];
int check_(int x){
vector<int> p;
for(int i = 0; i <= x; i++){
p.push_back(t[i]);
}
return query(p);
}
void dfs(int beg){
used[beg] = 1;
t.push_back(beg);
for(int i = 0; i < v[beg].size(); i++){
int nb = v[beg][i];
if(!used[nb]){
dfs(nb);
}
}
}
void read(vector < pair < int, int > > bridges){
for(int i = 0; i < bridges.size(); i++){
v[bridges[i].first].push_back(bridges[i].second);
v[bridges[i].second].push_back(bridges[i].first);
}
}
int findEgg(int N, vector < pair < int, int > > bridges){
t.clear();
memset(used, 0, sizeof(used));
for(int i = 1; i <= 513; i++){
v[i].clear();
}
read(bridges);
dfs(1);
int l = 0;
int r = t.size()-1;
while(l < r){
mid = (l+r)/2;
if(check_(mid) == 1){
r = mid;
} else {
l = mid+1;
}
}
return t[l];
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |