제출 #1319579

#제출 시각아이디문제언어결과실행 시간메모리
1319579muhammad-ahmadEaster Eggs (info1cup17_eastereggs)C++20
100 / 100
7 ms480 KiB
#include "grader.h" #include <iostream> #include <cmath> #include <algorithm> #include <map> #include <vector> #include <iomanip> #include <string> #include <queue> #include <set> #include <deque> #include <numeric> #include <stack> #include <chrono> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> using namespace std; using namespace __gnu_pbds; void fast_io() { // freopen("", "r", stdin); // freopen("", "w", stdout); // ios::sync_with_stdio(0); // cin.tie(); // cout.tie(); cout << setprecision(9); } // #define int long long // #define endl '\n' #define all(v) (v).begin(), (v).end() #define rall(v) (v).rbegin(), (v).rend() #define fi first #define se second #define ordered_set tree<int, null_type,less<int>, rb_tree_tag,tree_order_statistics_node_update> // int X; // // bool query(vector<int> &a){ // for (auto i : a) if (i == X) return 1; // return 0; // } const int N = 513; int t, val[N]; vector<int> adj[N]; void dfs(int u = 1, int par = 1){ val[++t] = u; for (auto v : adj[u]){ if (v == par) continue; dfs(v, u); } } int findEgg(int n, vector<pair<int, int>> bridges){ for (int i = 1; i <= n; i++) adj[i].clear(); t = 0; for (auto [u, v] : bridges){ adj[u].push_back(v); adj[v].push_back(u); } dfs(); int l = 0, r = n; while (r - l > 1){ int mid = (l + r) / 2; vector<int> Q; for (int i = 1; i <= mid; i++) Q.push_back(val[i]); bool x = query(Q); if (x) r = mid; else l = mid; } return val[r]; } // void solve() { // // } // // signed main() { // fast_io(); // srand(chrono::steady_clock::now().time_since_epoch().count()); // X = 5; // cout << findEgg(8, {{1,2}, {1,3}, {2, 4}, {2, 5}, {3, 6}, {3, 7}, {6, 8}}) << endl; // return 0; // }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...