Submission #1147202

#TimeUsernameProblemLanguageResultExecution timeMemory
1147202henriessEaster Eggs (info1cup17_eastereggs)C++20
0 / 100
295 ms196608 KiB
#include <bits/stdc++.h>
#include "grader.h"

using namespace std;

vector<int> vis;

vector<int> ord = {0};
vector<vector<int>> adjlist;
void dfs(int u,int p ){
    for(auto x : adjlist[u]){
		if (x == p){
			continue;
		}
		ord.push_back(x);
		dfs(x,u);
		
	}

}
int findEgg (int N, vector < pair < int, int > > bridges)
{	vis.resize(N);
	
	adjlist.resize(N);
	for(int i = 0;i<N-1;i++){
		int a = bridges[i].first;
		int b = bridges[i].second;
		a--;b--;
		adjlist[a].push_back(b);
		adjlist[b].push_back(a);
	}
	
	dfs(0,-1);
	long long lb = 0;
	long long ub = N-1;
	long long mid = -1;
	long long ans = -1;
	while (lb < ub){
		mid = (lb + ub) / 2;
		vector<int> temp;
		for(int i = lb;i<=mid;i++){
			temp.push_back(ord[i] + 1);
		}
		int r = query(temp);
		if (r == 0){
			lb = mid + 1;
		}
		else{
			ub = mid - 1;
		}
		
	}
	return ord[lb] + 1;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...