# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1164791 | Thanhs | Easter Eggs (info1cup17_eastereggs) | C++20 | 0 ms | 0 KiB |
// #include "grader.h"
#include <bits/stdc++.h>
using namespace std;
#define name "TENBAI"
#define fi first
#define se second
#define endl '\n'
#define setmin(x, y) x = min((x), (y))
#define setmax(x, y) x = max((x), (y))
#define sqr(x) ((x) * (x))
mt19937 hdp(chrono::high_resolution_clock::now().time_since_epoch().count());
int rand(int l, int r){return l + ((hdp() % (r - l + 1)) + r - l + 1) % (r - l + 1);}
const int NM = 512 + 5;
vector<int> g[NM];
int timer = 0;
vector<int> eu;
void dfs(int u, int p)
{
eu.push_back(u);
for (int v : g[u])
if (v != p)
dfs(v, u);
}
int findEgg(int n, vector<pair<int, int>> e)
{
for (int i = 1; i <= n; i++)
g[i].clear();
eu.clear();
for (auto t : e)
{
g[t.fi].push_back(t.se);
g[t.se].push_back(t.fi);
}
dfs(1 ,0);
int l = 0, r = n;
while (l < r - 1)
{
int m = l + r >> 1;
(query(vector<int>(eu.begin(), eu.begin() + m)) ? r : l) = m;
}
return eu[r - 1];
}