#include <bits/stdc++.h>
#include "grader.h"
#define pb push_back
#define ss second
#define ff first
using namespace std;
vector<int> v[520];
vector<int> vec;
int vis[520];
void dfs(int x){
vis[x] = 1;
vec.pb(x);
for (auto h : v[x]){
if (!vis[h]){
dfs(h);
}
}
}
int findEgg (int N, vector < pair < int, int > > bridges){
for (auto h : bridges){
v[h.ss - 1].pb(h.ff - 1);
v[h.ff - 1].pb(h.ss - 1);
}
dfs(0);
cerr << vec.size() << endl;
int l = 0, r = N - 2, ans = N - 1;
while (l <= r){
int mid = (l + r) / 2;
vector<int> vec1;
for (int i = 0; i <= mid; i++){
vec1.pb(vec[i] + 1);
}
// cout << "ASK: ";
// for (int& e : vec1)
// cout << e << ' ';
// cout << '\n';
bool b = query(vec1);
// cout << l << ' ' << r << ' ' << mid << ' ' << b << '\n';
if (b){
r = mid - 1;
ans = mid;
}else{
l = mid + 1;
}
}
//cout << ans + 1 << endl;
return vec[ans] + 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... |