Submission #1145823

#TimeUsernameProblemLanguageResultExecution timeMemory
1145823kolio642Easter Eggs (info1cup17_eastereggs)C++20
0 / 100
0 ms516 KiB
#include <iostream> #include <vector> #include "grader.h" #define endl '\n' using namespace std; const int MAXN = 1024; vector < int > e[MAXN]; vector < int > order; int n; void speed() { ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); } void dfs(int node, int parent) { order.push_back(node); for(int &nb : e[node]) { if(nb == parent) continue; dfs(nb, node); order.push_back(node); } } bool check(int mid, int R) { vector < int > q; q.clear(); for(int i = mid ; i <= R ; i++) { q.push_back(order[i]); } int qAns = query(q); return qAns; } int binarySearch() { int L = 0, R = order.size(), mid; while(L <= R) { mid = (L + R) / 2; //cout << L << ' ' << R << ' ' << mid <<endl; if(check(mid, R)) L = mid + 1; else R = mid - 1; } return order[R]; } void read(int N, vector < pair < int, int > > &bridges) { n = N; for(pair <int , int>& i : bridges) { e[i.first].push_back(i.second); e[i.second].push_back(i.first); } } void clearMemory() { for(int i = 0 ; i < MAXN ; i++) { e[i].clear(); } order.clear(); } int findEgg (int N, vector < pair < int, int > > bridges) { read(N, bridges); dfs(1, -1); int ans = binarySearch(); clearMemory(); return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...