Submission #1137127

#TimeUsernameProblemLanguageResultExecution timeMemory
1137127anmattroiEaster Eggs (info1cup17_eastereggs)C++20
100 / 100
8 ms492 KiB
#include<bits/stdc++.h>
#include "grader.h"
#define maxn 515
#define fi first
#define se second
using namespace std;
using ii = pair<int, int>;

int x[maxn], id = 0;
vector<int> adj[maxn];

void dfs(int u, int dad) {
    x[++id] = u;
    for (int v : adj[u])
        if (v != dad)
            dfs(v, u);
}

int ASK(int mid) {
    vector<int> cr;
    for (int i = 1; i <= mid; i++) cr.emplace_back(x[i]);
    return query(cr);
}

int findEgg(int N, vector<ii> bridges) {
    for (ii x : bridges) {
        adj[x.fi].emplace_back(x.se);
        adj[x.se].emplace_back(x.fi);
    }

    dfs(1, 0);

    int lo = 0, hi = N;
    while (hi - lo > 1) {
        int mid = (lo + hi) >> 1;
        if (ASK(mid)) hi = mid;
        else lo = mid;
    }
    id = 0;
    for (int i = 1; i <= N; i++) adj[i].clear();
    return x[hi];
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...