Submission #522371

#TimeUsernameProblemLanguageResultExecution timeMemory
522371ddy888Easter Eggs (info1cup17_eastereggs)C++17
87 / 100
21 ms448 KiB
#include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define fi first    
#define si second
#define ar array
typedef pair<int,int> pi;
#include "grader.h"

vector<int> adj[520], order;

void dfs(int x, int p) {
    order.pb(x);
    for (auto i: adj[x]) {
        if (i == p) continue;
        dfs(i, x);
    }
}

int findEgg (int n, vector < pair < int, int > > bridges)
{   
    order.clear();
    for (int i = 1; i <= n; ++i) adj[i].clear();
    for (auto i: bridges) {
        adj[i.fi].pb(i.si);
        adj[i.si].pb(i.fi);
    }
    dfs(1, -1);
    int lo = 0, hi = n + 1;
    while (lo + 1 < hi) {
        int mid = (lo + hi + 1) / 2;
        vector<int> lq;
        for (int i = 1; i <= mid; ++i) {
            assert(i - 1 < n);
            lq.pb(order[i - 1]);
        }
        if (query(lq)) hi = mid;
        else lo = mid;
    }
    return order[hi - 1];
}  
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...