제출 #269816

#제출 시각아이디문제언어결과실행 시간메모리
269816AKaan37Easter Eggs (info1cup17_eastereggs)C++17
0 / 100
5 ms928 KiB
//Bismillahirrahmanirrahim //█▀█─█──█──█▀█─█─█ //█▄█─█──█──█▄█─█▄█ //█─█─█▄─█▄─█─█─█─█ #include "grader.h" #include <bits/stdc++.h> using namespace std; typedef long long lo; typedef pair< lo,lo > PII; #define fi first #define se second #define mp make_pair #define endl "\n" #define pb push_back #define fio() ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL) #define FOR for(int i=1;i<=n;i++) #define mid ((start+end)/2) #define ort ((bas+son)/2) const lo inf = 1000000000000000000; const lo KOK = 100000; const lo LOG = 30; const lo li = 5555; const lo mod = 1000000007; //~ vector<int> v; vector<int> vv,vect[5555]; inline void dfs(int node,int ata){ vv.pb(node); for(int i=0;i<(int)vect[node].size();i++){ int go=vect[node][i]; if(go==ata)continue; dfs(go,node); } } vector<int> vec; int findEgg (int N, vector < pair < int, int > > bridges) { for(int i=1;i<=N;i++)vect[i].clear(); for(int i=0;i<(int)bridges.size();i++){ int x=bridges[i].fi; int y=bridges[i].se; vect[x].pb(y); vect[y].pb(x); } vv.clear(); //~ for(int i=1;i<=N;i++)if (query ({i})) return i; dfs(1,0); int bas=0; int son=(int)vv.size()-1; while(bas<=son){ vec.clear(); for(int i=bas;i<=min((int)vv.size()-1,ort);i++){ vec.pb(vv[i]); } if(query(vec))son=ort-1; else bas=ort+1; } //~ cout<<vv[bas]<<endl; if(bas>(int)vv.size()-1)return 0; return vv[bas]; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...