Submission #279654

#TimeUsernameProblemLanguageResultExecution timeMemory
279654MKutayBozkurtEaster Eggs (info1cup17_eastereggs)C++17
100 / 100
30 ms680 KiB
#include <bits/stdc++.h>
#include "grader.h"
using namespace std;

vector<vector<int>> v;
vector<int> a;

void dfs(int i, int last = -1) {
	a.emplace_back(i);
	for (auto node : v[i]) {
		if (last == node) continue;
		dfs(node, i);
	}
}

int findEgg (int n, vector<pair<int, int>> bridges) {
	v = vector<vector<int>>(n + 10);
	for (auto node : bridges) {
		v[node.first].emplace_back(node.second);
		v[node.second].emplace_back(node.first);
	}
	dfs(1);
	int l = 0, r = n - 1;
	while (l < r) {
		int m = (l + r) / 2;
		if (query(vector<int>(a.begin(), a.begin() + m + 1))) r = m;
		else l = m + 1;
	}
	return a[l];
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...