제출 #1347716

#제출 시각아이디문제언어결과실행 시간메모리
1347716miyazaki1072Easter Eggs (info1cup17_eastereggs)C++20
큐에 대기중
0 ms0 KiB
#include <bits/stdc++.h>
#include "grader.h"

using namespace std;


int n;
vector<int>adj[n+50];
int node[n+50],a[n+50],tour=1;
void dfs(int u,int p){
    node[u] = tour++;
    a[node[u]] = u;
    for(auto &v:adj[u]){
        if(v==p)continue;
        dfs(v,u);
    }
} 
vector<int>calc(int r){
    vector<int>ret;
    for(int i=1;i<=r;i++)ret.push_back({a[i]});
    return ret;
}
int findEgg (int N, vector < pair < int, int > > bridges){
    n = N;
    for(auto [u,v]:bridges){
        adj[u].pb(v);
        adj[v].pb(u);
    }
    int l=1,r=n;
    while(l<r){
        int mid = (l+r)/2;
        vector<int> vecask = calc(mid);
        if(query(vecask))r=mid;
        else l = mid+1;
    }
    return node[l];
}