제출 #282157

#제출 시각아이디문제언어결과실행 시간메모리
282157kshitij_sodaniEaster Eggs (info1cup17_eastereggs)C++14
100 / 100
25 ms632 KiB
#include <bits/stdc++.h>
using namespace std;
typedef long long llo;
#define mp make_pair
#define pb push_back
#define a first 
#define b second

#include "grader.h"

using namespace std;
vector<int> adj[520];
vector<int> ord;
void dfs(int no,int par=-1){
	ord.pb(no);

	for(auto j:adj[no]){
		if(j!=par){
			dfs(j,no);
		}
	}
}
bool ask(int i){
	vector<int> kk;
	for(int j=0;j<=i;j++){
		kk.pb(ord[j]+1);
	}
	return query(kk);

}
int findEgg (int n, vector <pair <int,int>> ed){
    for(int i=0;i<n;i++){
		adj[i].clear();
	}

	for(auto j:ed){
		adj[j.a-1].pb(j.b-1);
		adj[j.b-1].pb(j.a-1);
	}
	dfs(0);
//	cout<<11<<endl;
	int ind=-1;
	for(int i=8;i>=0;i--){
		if(ind+(1<<i)>=(n-1)){
			continue;
		}
		if(!ask(ind+(1<<i))){
			ind+=(1<<i);
		}
	}



  //  cout<<ans<<endl;
    return ord[ind+1]+1;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...