Submission #243057

#TimeUsernameProblemLanguageResultExecution timeMemory
243057XenocryptixEaster Eggs (info1cup17_eastereggs)C++17
100 / 100
25 ms640 KiB
#include<bits/stdc++.h>
#include "grader.h"
using namespace std;

#define fi first
#define se second
#define pb push_back
vector<int> g[10000], q;

void dfs(int u, int f = -1) {
	q.pb(u);
	for(int i: g[u])
		if(i != f)
			dfs(i, u);
}

int bin_search(int l, int r) {
	while(l < r) {
		int m = (l + r) >> 1;
		if(query(vector<int>(q.begin(), q.begin() + m)))
            r = m;
        else
            l = m + 1;
	}
	return l;
}

int findEgg(int N, vector< pair<int, int> > bridges) {
	q.clear();
    for(int i = 1; i <= N; i++){
        g[i].clear();
    }
	for(auto i: bridges) {
		g[i.fi].pb(i.se);
		g[i.se].pb(i.fi);
	}
	dfs(1);
	return q[bin_search(1, N) - 1];
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...