제출 #1143873

#제출 시각아이디문제언어결과실행 시간메모리
1143873IrateEaster Eggs (info1cup17_eastereggs)C++20
100 / 100
8 ms504 KiB
#include <bits/stdc++.h> using namespace std; const int mxN = 513; vector<int>G[mxN], Euler; void dfs(int node, int par){ Euler.push_back(node); for(int &v : G[node]){ if(v != par){ dfs(v, node); } } } int query(vector<int>q);//{ // cout << "? "; // for(int i : q){ // cout << i << " "; // } // cout << endl; // int a; // cin >> a; // return a; // } int findEgg(int n, vector<pair<int, int>>bridges){ for(int i = 0;i < (int)bridges.size();++i){ int u = bridges[i].first, v = bridges[i].second; G[u].push_back(v); G[v].push_back(u); } dfs(1, 1); int l = 0, r = Euler.size() - 1; while(l < r){ int mid = (l + r) / 2; vector<int>q; for(int i = 0;i <= mid;++i){ q.push_back(Euler[i]); } if(query(q)){ r = mid; } else{ l = mid + 1; } } int res = Euler[r]; Euler.clear(); for(int i = 1;i <= n;++i){ G[i].clear(); } return res; } // int main(){ // ios_base::sync_with_stdio(0); // cin.tie(0); // int n; // cin >> n; // vector<pair<int, int>>b; // for(int i = 0;i < n - 1;++i){ // int u, v; // cin >> u >> v; // b.push_back({u, v}); // } // cout << findEgg(n, b); // }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...