#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);
    }
    
    dfs(0);
    
    //cout << vec.size() << endl;
    int l = 0, r = N - 1, 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);
        }
        
        bool b = query(vec1);
        if (b){
            r = mid - 1;
            ans = mid;
        }else{
            l = mid + 1;
        }
    }
    
    //cout << ans + 1 << endl;
    return 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... |