This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
#include "grader.h"
using namespace std;
typedef pair<int,int> ii;
typedef vector<ii> vii;
typedef vector<int> vi;
vector<vi> AdjList;
vi qr;
vector<bool> num,ck;
int cur,cnt,n,tmp;
void dfs(int v, int p) {
if(tmp==cur) return;
if(ck[v]) cur++;
qr.push_back(v);
for(int u: AdjList[v]) {
if(u==p) continue;
else dfs(u,v);
}
}
int findEgg(int n, vii edges) {
AdjList.assign(n+1,vi());
num.assign(n+1,-1);
ck.assign(n+1,1);
cnt=n;
for(ii t: edges) {
AdjList[t.first].push_back(t.second);
AdjList[t.second].push_back(t.first);
}
while(cnt!=1) {
tmp=(cnt+1)/2;
cur=0;
qr.clear();
dfs(1,1);
if(query(qr)) {
for(int i=1 ; i<=n ; i++) num[i]=0;
for(int i: qr) num[i]=ck[i];
for(int i=1 ; i<=n ; i++) ck[i]=num[i];
cnt=tmp;
}
else {
for(int i: qr) {
ck[i]=0;
}
cnt-=tmp;
}
}
for(int i=1 ; i<=n ; i++) {
if(ck[i]) return i;
}
}
Compilation message (stderr)
eastereggs.cpp: In function 'int findEgg(int, vii)':
eastereggs.cpp:50:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |