#ifndef SUN
#include "grader.h"
#endif // SUN
#include <bits/stdc++.h>
using namespace std;
#define FOR(i, a, b) for (int i = (a), _b = (b); i <= _b; ++i)
#ifdef SUN
bool query(vector<int> islands) {
return true;
}
#endif // SUN
#define MAX_NODE 520
vector<int> adj[MAX_NODE + 2];
vector<int> euler;
void dfs(int u, int par = -1) {
euler.push_back(u);
for (int v : adj[u]) {
if (v == par) continue;
dfs(v, u);
}
}
int findEgg(int n, vector <pair <int, int>> edges) {
FOR(i, 1, n) adj[i].clear();
euler.clear();
for (const pair <int, int> &e : edges) {
int u = e.first, v = e.second;
adj[u].push_back(v);
adj[v].push_back(u);
}
dfs(1);
int l = 1, r = n, g, vt = -1;
while (l < r) {
g = (l + r) >> 1;
vector<int> ask;
for (int i = 0; i < g; ++i) ask.push_back(euler[i]);
if (query(ask)) r = g - 1;
else l = g + 1;
}
return euler[l - 1];
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |