#include <bits/stdc++.h>
#include "grader.h"
#define endl '\n'
using namespace std;
const int MAX = 550;
vector<int> v[MAX], order;
bool used[MAX];
bool Checker(int x)
{
vector<int> c;
for (int i = 1; i <= x; i++)
{
c.push_back(order[i]);
}
return query(c);
}
int Binary()
{
int l = 1, r = order.size(), m;
while (r - l >= 0)
{
m = l + (r - l) / 2;
if (Checker(m))
r = m;
else
l = m + 1;
}
return order[r];
}
void Dfs(int g)
{
used[g] = 1;
order.push_back(g);
for (int i = 0; i < v[g].size(); i++)
{
if (!used[v[g][i]])
Dfs(v[g][i]);
}
}
int findEgg(int n, vector<pair<int, int>> p)
{
for (int i = 0; i < p.size(); i++)
{
v[p[i].first].push_back(p[i].second);
v[p[i].second].push_back(p[i].first);
}
order.push_back(-1);
Dfs(1);
int ans = Binary();
for (int i = 0; i <= n; i++)
{
v[i].clear();
used[i] = 0;
}
order.clear();
return ans;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |