Submission #538699

#TimeUsernameProblemLanguageResultExecution timeMemory
538699M_WEaster Eggs (info1cup17_eastereggs)C++14
100 / 100
23 ms360 KiB
#include <bits/stdc++.h>
#include "grader.h"
using namespace std;
vector<int> adj[513], tmp;
int idx[513], cnt = 0;

void dfs(int a, int p){
	idx[++cnt] = a;
	for(auto x : adj[a]){
		if(x == p) continue;
		dfs(x, a);
	}
	return;
}

int findEgg (int N, vector < pair < int, int > > bridges)
{
	memset(idx, 0, sizeof idx);
	for(int i = 1; i <= N; i++) adj[i].clear();
	cnt = 0;
	
	for(auto x : bridges){
		adj[x.first].push_back(x.second);
		adj[x.second].push_back(x.first);
	}
	dfs(1, 0);

	int l = 1, r = N;
	while(l < r){
		int mid = (l + r) >> 1;
		for(int i = 1; i <= mid; i++) tmp.push_back(idx[i]);
		int q = query(tmp);
		
		if(q) r = mid;
		else l = mid + 1;
		tmp.clear();
	}
	
	return idx[l];
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...