제출 #576501

#제출 시각아이디문제언어결과실행 시간메모리
576501MEGalodonEaster Eggs (info1cup17_eastereggs)C++17
100 / 100
22 ms468 KiB
#include <bits/stdc++.h>
#include "grader.h"
#define MAXN 513

using namespace std;

vector<int> adj_lst[MAXN];
vector<int> dfsOrder;
int it = 0;

void dfs(int i, int p){
    if( it ) return;
    dfsOrder.push_back(i);
    for( int j : adj_lst[i] ){
        if( j == p ) continue;
        dfs(j, i);
    }
}
int findEgg (int N, vector < pair < int, int > > bridges)
{
    //for( int i{1} ; i <= N ; ++i ) adj_lst[i].clear();
    for( auto e : bridges ){
        if( it ) break;
        adj_lst[e.first].push_back(e.second);
        adj_lst[e.second].push_back(e.first);
    }
    //dfsOrder.clear();
    dfs(1, 0);
    it = 1;
    int l = 0, r = N-1;
    int m; vector<int> q;
    //for( int x : dfsOrder ) cout<<x<<" "; cout<<'\n';
    while( l < r ){
        m = (l+r)/2;
        q.clear(); q.assign(dfsOrder.begin(), dfsOrder.begin()+m+1);
        if(query(q)) r = m;
        else l = m+1;
    }
    //cout<<l<<'\n';
    return dfsOrder[l];
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...