제출 #1347837

#제출 시각아이디문제언어결과실행 시간메모리
1347837winEaster Eggs (info1cup17_eastereggs)C++20
100 / 100
6 ms500 KiB
#include <bits/stdc++.h>
#include "grader.h"
using namespace std;

void dbg() { cout << "\n"; }
template<typename H, typename... T>
void dbg(H h, T... t) {
    cout << h << " ";
    dbg(t...);
}

const int N = 600;
int t,a[N],b[N];

vector<int> adj[N];

void dfs(int i, int p) {
    a[i] = ++t;
    b[t] = i;
    for (auto x : adj[i]) {
        if (x == p) continue;
        dfs(x,i);
    }
}

bool ask(int v) {
    vector<int> kuy;
    for (int i = 1; i <= v; i++) {
        kuy.push_back(b[i]);
    }
    return query(kuy);
}

int findEgg(int n, vector<pair<int,int>> e) {
    t = 0;
    for (int i = 1; i <= n; i++) adj[i].clear();
    for (auto x : e) {
        adj[x.first].push_back(x.second);
        adj[x.second].push_back(x.first);
    }
    dfs(1,-1);
    int l = 1, r = n;
    while (l < r) {
        int mid = (l+r)/2;
        // dbg(mid,l,r);
        if (ask(mid)) r = mid;
        else l = mid+1;
    }
    return b[l];
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...