Submission #1162723

#TimeUsernameProblemLanguageResultExecution timeMemory
1162723cnn008Easter Eggs (info1cup17_eastereggs)C++20
100 / 100
8 ms512 KiB
#include "grader.h"
#include <bits/stdc++.h>
using namespace std;
vector <int> g[515],e,vis;
void dfs(int u, int p){
	e.push_back(u);
	for(auto v:g[u]) if(v!=p) dfs(v,u);
}
int findEgg(int n, vector <pair <int,int> > bridges){
	for(int i=1; i<=n; i++) g[i].clear();
	e.clear();
	vis.clear();
	for(int i=0; i<n; i++) vis.push_back(0);
	for(auto [u,v]:bridges){
		g[u].push_back(v);
		g[v].push_back(u);
	}
	dfs(1,0);
	int l=1,r=n,ans=0;
	while(l<=r){
		int mid=(l+r)>>1;
		vector <int> cur;
		for(int i=0; i<mid; i++) cur.push_back(e[i]);
		bool x=query(cur);
		if(__builtin_popcount(n)==1 and l+1==r){
			if(x) ans=l;
			else ans=r;
			break;
		}
		if(x) ans=mid,r=mid-1;
		else l=mid+1;
	}
	return e[ans-1];
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...