Submission #1164733

#TimeUsernameProblemLanguageResultExecution timeMemory
1164733nathan4690Easter Eggs (info1cup17_eastereggs)C++20
100 / 100
9 ms536 KiB
#include "grader.h" #include <bits/stdc++.h> using namespace std; const int maxn = 1000; void dfs(int u, int p, int &timer, vector<int> &sp, const vector<vector<int>> &G){ sp[u] = timer++; for(int c: G[u]){ if(c != p){ dfs(c, u, timer, sp, G); } } } int findEgg(int N, vector<pair<int,int>> bridges){ vector<vector<int>> G(N+1); for(pair<int,int> e: bridges){ int u = e.first, v = e.second; G[u].push_back(v); G[v].push_back(u); } vector<int> sp(N + 1); int timer = 1; dfs(1, 0, timer, sp, G); vector<int> perm(N); iota(perm.begin(), perm.end(), 1); sort(perm.begin(), perm.end(), [&](int u, int v){ return sp[u] < sp[v]; }); // for(int item: perm) cout << item << '\n'; int L = 0, R = N - 1; while(L < R){ int mid = (L + R) / 2; vector<int> ques(perm.begin(), perm.begin() + mid + 1); if(query(ques)) R = mid; else L = mid + 1; } return perm[L]; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...