#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... |