#include <iostream>
#include <vector>
#include <algorithm>
#include <cmath>
#include <set>
#include "grader.h"
#define endl '\n'
#define ll long long
vector<int>v[600];
vector<int>b;
bool used[600];
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)
{
for(int i=0;i<bridges.size();i++)
{
int x,y;
x=bridges[i].first;
y=bridges[i].second;
v[x].push_back(y);
}
for(int i=1;i<=n;i++)
{
if(!used[i])
{
dfs(i);
}
}
int l=0,r=b.size()-1,ans=0,m;
while(l<=r)
{
m=l+(r-l)/2;
vector<int>cur(m);
for(int i=1;i<=m;i++)
{
cur.push_back(i);
}
int isThere=query(cur);
if(isThere==1)
{
r=m-1;
}
else
{
l=m+1;
}
}
return m;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |