Submission #471005

#TimeUsernameProblemLanguageResultExecution timeMemory
471005vishesh312Easter Eggs (info1cup17_eastereggs)C++17
100 / 100
25 ms496 KiB
#include "bits/stdc++.h" #include "grader.h" using namespace std; /* #include <ext/pb_ds/assoc_container.hpp> using namespace __gnu_pbds; using ordered_set = tree<int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update>; */ #define all(x) begin(x), end(x) #define rall(x) rbegin(x), rend(x) #define sz(x) (int)(x).size() using ll = long long; const int mod = 1e9+7; void dfs(int u, int p, vector<vector<int>> &adj, vector<int> &o) { o.push_back(u); for (int v : adj[u]) if (v != p) dfs(v, u, adj, o); } int findEgg(int n, vector<pair<int, int>> bridges) { vector<vector<int>> adj(n+1); vector<int> o; for (auto [u, v] : bridges) { adj[u].push_back(v); adj[v].push_back(u); } dfs(1, -1, adj, o); int l = 0, r = n-1; auto chk = [&] (int m) -> bool { vector<int> v(o.begin(), o.begin() + m + 1); /* for (int x : v) cout << x << " "; cout << '\n'; */ return query(v); }; while (l < r) { int m = (l + r) / 2; // cout << "m : " << m << '\n'; if (chk(m)) { // cerr << "true\n"; r = m; } else { // cout << "false\n"; l = m+1; } } // cout << r << " " << o[r] << '\n'; return o[r]; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...