Submission #1141346

#TimeUsernameProblemLanguageResultExecution timeMemory
1141346efishelEaster Eggs (info1cup17_eastereggs)C++20
100 / 100
7 ms504 KiB
#include "grader.h"
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using vll = vector <ll>;
using ii = pair <int, int>;
using vii = vector <ii>;
using vi = vector <int>;

const ll MAXN = 1E3+16;
vll adj[MAXN];
ll wh[MAXN], timer;

void dfs (ll u, ll par) {
    wh[timer] = u+1;
    timer++;
    for (ll v : adj[u]) {
        if (v == par) continue;
        dfs(v, u);
    }
}

int findEgg (int n, vii egs) {
    fill(adj, adj+n, vll({}));
    for (auto [u, v] : egs) {
        u--; v--;
        adj[u].push_back(v);
        adj[v].push_back(u);
    }
    timer = 0;
    dfs(0, 0);
    ll l = -1, r = n-1;
    while (l+1 < r) {
        ll mid = (l+r)>>1;
        ll ans = query(vi(wh, wh+mid+1));
        assert(ans == 0 || ans == 1);
        if (ans)
            r = mid;
        else
            l = mid;
    }
    return wh[r];
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...