# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
95351 | 2019-01-30T14:48:27 Z | dalgerok | Easter Eggs (info1cup17_eastereggs) | C++14 | 0 ms | 0 KB |
#include<bits/stdc++.h> #include "grader.h" using namespace std; vector < int > q, g[10000]; void dfs(int v, int pr = -1){ q.push_back(v); for(int to : g[v]){ if(to != pr){ dfs(to, v); } } } int FindEdgge(int N, vector < pair < int, int > > bridges){ q.clear(); for(int i = 1; i <= N; i++){ g[i].clear(); } for(auto it : bridges){ g[it.first].push_back(it.second); g[it.second].push_back(it.first); } dfs(1); int l = 1, r = N; while(l < r){ int mid = (r + l) >> 1; if(query(vector < int >(q.begin(), q.begin() + mid))){ r = mid; } else{ l = mid + 1; } } return q[l - 1]; }