제출 #1337291

#제출 시각아이디문제언어결과실행 시간메모리
1337291Ekber_EkberEaster Eggs (info1cup17_eastereggs)C++20
0 / 100
9 ms528 KiB
#include <bits/stdc++.h>
#include "grader.h"
#define ff first
#define ss second
#define pb push_back
#define all(v) v.begin(), v.end()
using namespace std;

constexpr int MAX = 2e+5 + 1, INF = 2e+9, MOD = 1e+9 + 7;
int n, m;
vector <int> g[MAX+2], v;
bool is = 0;

void dfs(int u, int c=-1) {
    if (v.size() == m) return;
    v.pb(u);
    if (v.size() == m) return;
    for (int &i : g[u]) {
        if (i == c) continue;
        dfs(i, u);
    }
}

int findEgg (int N, vector < pair < int, int > > e) {
    if (!is) {
        n = N;
        for (auto &i : e) g[i.ff].pb(i.ss), g[i.ss].pb(i.ff);
        is = 1;
    }
    int K = log2(n * 2 - 1);
    int k = 0;
    int res=-1;
    for (int i = K-1; i >= 0; i--) {
        int nk = k + (1LL << i);
        m = nk;
        v.clear();
        dfs(1);
        if (query(v)) {
            res = v.back();
        }
        else k = nk;
    }
    m = k;
    v.clear();
    dfs(1);
    return (res == -1 ? v.back() : res);
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...