# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
918344 | Ferid20072020 | Easter Eggs (info1cup17_eastereggs) | C++14 | 0 ms | 0 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
#include "grader.h"
using namespace std;
int color[2e5+5];
vector<vector<int>> g(2e5+5);
vector<int> List;
void DFS(int node){
color[node] = 1;
List.push_back(node);
for(auto to : g[node]){
if(color[to] == 0){
DFS(to);
}
}
}
int findEgg (int N, vector < pair < int, int > > bridges)
{
List.clear();
for(int i=0 ; i<2e5 + 5 ; i++){
g[i].clear();
}
for(int i=0 ; i<bridges.size() ; i++){
int u = bridges[i].first;
int v = bridges[i].second;
g[u].push_back(v);
g[v].push_back(u);
}
DFS(1);
int l = 0 , r = N - 1;
while(l < r){
int mid = (l + r) / 2;
vector<int> c;
for(int i=l ; i<=mid ; i++){
c.push_back(List[i]);
}
int ask = query(c);
if(ask == 1){
r = mid;
}
else{
l = mid + 1;
}
}
return List[l];
}