제출 #522190

#제출 시각아이디문제언어결과실행 시간메모리
522190blueEaster Eggs (info1cup17_eastereggs)C++17
100 / 100
19 ms608 KiB
#include <vector> #include <cassert> #include "grader.h" using namespace std; using vi = vector<int>; using pii = pair<int, int>; const int mx = 512; vi edge[1+mx]; vi ord(1, 0); vi vis(1+mx, 0); void dfs(int u, int p) { vis[u] = 1; ord.push_back(u); for(int v : edge[u]) { if(!vis[v]) dfs(v, u); } } int findEgg (int N, vector < pair < int, int > > bridges) { for(pii b: bridges) { edge[b.first].push_back(b.second); edge[b.second].push_back(b.first); } dfs(1, 1); assert(int(bridges.size()) >= N-1); // assert(int(ord.size()) == N); int lo = 1, hi = N; while(lo != hi) { int mid = (lo+hi)/2; vi qr; for(int i = 1; i <= mid; i++) qr.push_back(ord[i]); if(query(qr)) hi = mid; else lo = mid+1; } return ord[lo]; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...