제출 #98486

#제출 시각아이디문제언어결과실행 시간메모리
98486TAMREFEaster Eggs (info1cup17_eastereggs)C++11
100 / 100
32 ms384 KiB
#include <bits/stdc++.h>
#define va first
#define vb second
#include "grader.h"

using namespace std;
using pii = pair<int,int>;
vector<int> G[550];
vector<int> ord;

void dfs(int x, int p){
    ord.push_back(x);
    for(int u : G[x]){
        if(u == p) continue;
        dfs(u, x);
    }
}

bool ini = true;
int findEgg (int N, vector<pii> bridges){
    if(ini){
        for(int i = 0; i < N-1; i++){
            G[bridges[i].va].push_back(bridges[i].vb);
            G[bridges[i].vb].push_back(bridges[i].va);
        }
        dfs(1,0);
        ini = false;
    }
    int s = 0, e = N - 1, m;
    while(s < e){
        m = (s+e) >> 1;
        int qry = query(vector<int>(ord.begin(), ord.begin() + m + 1));
        //printf("bs on [%d,%d], qry = %d\n",s,e,qry);
        if(qry) e = m;
        else s = m + 1;
    }
    //printf("m = %d\n",m);
    //for(int u : ord) printf("%d ",u); puts("");
    return ord[e];
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...