Submission #1145967

#TimeUsernameProblemLanguageResultExecution timeMemory
1145967tolgaEaster Eggs (info1cup17_eastereggs)C++20
100 / 100
8 ms508 KiB
#include "grader.h" #include <cstring> #include <vector> using namespace std; typedef long long ll; #define endl '\n' const int maxv = 1e3; vector<int> edges[maxv]; vector<int> in; bool visited[maxv]; bool check(int mid) { vector<int> p; for (int i = 0; i <= mid; i++) p.push_back(in[i]); return query(p); } void dfs(int start) { in.push_back(start); visited[start] = true; for (int next : edges[start]) if (!visited[next]) dfs(next); } int bin_search() { dfs(1); int l = 0, r = in.size() - 1; int mid; while (l < r) { mid = (l + r) / 2; if (check(mid)) r = mid; else l = mid + 1; } return in[r]; } void clear() { for (int i = 0; i < maxv; i++) edges[i].clear(); memset(visited, false, sizeof(visited)); in = {}; } int findEgg(int n, vector<pair<int, int>> bridges) { clear(); for (auto &[u, v] : bridges) { edges[u].push_back(v); edges[v].push_back(u); } return bin_search(); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...