#include <iostream>
#include <vector>
#include <algorithm>
#include <cmath>
#include <set>
#include "grader.h"
#define endl '\n'
#define ll long long
vector<int>v[513];
vector<int>b;
bool used[513];
void dfs(int a)
{
used[a]=true;
b.push_back(a);
for(auto i:v[a])
{
if(!used[i])
{
dfs(a);
}
}
}
int findEgg(int n,vector<pair<int,int>>bridges)
{
memset(used,false,sizeof(used));
for(int i=1;i<=n;i++)
{
v[i].clear();
}
for(int i=0;i<bridges.size();i++)
{
int x,y;
x=bridges[i].first;
y=bridges[i].second;
v[x].push_back(y);
v[y].push_back(x);
}
b.clear();
dfs(1);
int l=0,r=b.size()-1,m,isThere;
vector<int>cur;
while(l<r)
{
m=l+(r-l)/2;
cur.clear();
cur.resize(m);
for(int i=1;i<=m;i++)cur.push_back(i);
isThere=query(cur);
if(isThere==1)
{
r=m;
}
else
{
l=m+1;
}
}
return b[l];
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |