제출 #1149019

#제출 시각아이디문제언어결과실행 시간메모리
1149019minh30082008Easter Eggs (info1cup17_eastereggs)C++20
100 / 100
8 ms516 KiB
#include<bits/stdc++.h> #include "grader.h" #define INF 1e18 #define fi first #define se second #define FOR(i, k, n) for(ll i = k; i <= n; i++) #define FOR1(i, k, n) for(ll i = k; i >= n; i--) #define pb push_back #define fastio ios::sync_with_stdio(0); cin.tie(0); cout.tie(0) #define vi vector<int> #define pii pair<int, int> #define vii vector<pii> #define ll long long #define vll vector<ll> #define pll pair<ll, ll> #define re return 0 #define mii map<int, int> #define input "chinaflu.inp" #define output "chinaflu.out" #define rf freopen(input, "r", stdin); freopen(output, "w", stdout) using namespace std; const int maxn = 1e5 + 5; const int mod = 1e9 + 9; const int base = 998244353; void add(int &a, int b) { a += b; if(a >= mod) a -= mod; if(a < 0) a += mod; } mt19937 rd(chrono::steady_clock::now().time_since_epoch().count()); int rand(int l, int r) { return uniform_int_distribution<int>(l, r) (rd); } vi adj[600]; vi vv; void DFS(int u, int par) { vv.pb(u); for(auto v : adj[u]) { if(v == par) continue; DFS(v, u); } } int findEgg(int n, vii adj1) { vv.clear(); FOR(i, 1, n) adj[i].clear(); for(auto x : adj1) { int u = x.fi, v = x.se; adj[u].pb(v); adj[v].pb(u); } DFS(1, 0); vi ask; int l = 0, r = n - 1, vt = -1; while(l <= r) { int mid = (l + r) >> 1; ask.clear(); FOR(i, 0, mid) ask.pb(vv[i]); bool ok = query(ask); if(n == 16 || n == 512) { if(l + 1 == r) { if(ok == 1) vt = l; else vt = r; break; } } if(ok == 1) { vt = mid; r = mid - 1; } else l = mid + 1; } return vv[vt]; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...