| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1336980 | michael12 | Easter Eggs (info1cup17_eastereggs) | C++20 | 0 ms | 0 KiB |
#include "grader.h"
#include<bits/stdc++.h>
#define endl '\n'
#define ff first
#define ss second
#define int long long
using namespace std;
const int maxn = 5e5 + 5;
vector<int> s;
vector<int> adj[maxn];
vector<int> all;
void dfs(int u, int p){
all.push_back(u);
for(auto v : adj[u]){
if(v == p) continue;
dfs(v, u);
}
}
int findEgg(int N, vector<pair<int, int>> bridges){
all.clear();
for(int i = 0; i < bridges.size(); i++){
adj[bridges[i].ff].push_back(bridges[i].ss);
adj[bridges[i].ss].push_back(bridges[i].ff);
}
dfs(1, - 1);
vector<int32_t> st;
int L = 0, R = N;
while(L + 1 < R){
int mid = (L + R) / 2;
if(query({all.begin(), all.end() + mid})){
R = mid;
}
else{
L = mid;
}
}
return all[L];
}
