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;
#define MAXN 520
long long n;
vector<long long> adj[MAXN];
vector<long long> nodes;
vector<int> vec;
void dfs(long long node,long long pret)
{
nodes.push_back(node);
long long s=adj[node].size();
for (long long i=0;i<s;i++)
{
long long sled=adj[node][i];
if (sled!=pret) dfs(sled,node);
}
}
bool check(long long mid)
{
for (long i=0;i<=mid;i++) vec.push_back(nodes[i]);
long long ans=query(vec);vec.clear();
if (ans==1) return true;
return false;
}
int findEgg(int N, vector < pair < int, int > > bridges)
{
n=N;nodes.clear();
for (long long i=0;i<MAXN;i++) adj[i].clear();
for (long long i=0;i<n-1;i++)
{
long long x=bridges[i].first;
long long y=bridges[i].second;
adj[x].push_back(y);
adj[y].push_back(x);
}
dfs(1,0);
long long l=0;
long long r=n-1;
long long rez=-1;
long long pretmid=-1;
while (l!=r)
{
long long mid=(l+r+1)/2;
if (mid==pretmid) break;
pretmid=mid;
if (check(mid)) {rez=mid;r=mid-1;}
else l=mid;
}
return nodes[rez];
};
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |