제출 #375415

#제출 시각아이디문제언어결과실행 시간메모리
375415SeanliuMeetings (JOI19_meetings)C++14
29 / 100
2208 ms1004 KiB
#include "meetings.h" #include <iostream> #include <vector> using namespace std; const int maxN = 2e3 + 326; vector<int> adj[maxN]; void solve(vector<int> vec){ //cout << "vec = "; for(int x : vec) cout << x << " "; cout << endl; if(vec.size() == 1) return; if(vec.size() == 2){ //cout << "Bridging: " << vec[0] << ", " << vec[1] << endl; if(vec[0] > vec[1]) swap(vec[0], vec[1]); Bridge(vec[0], vec[1]); return; } int cur = vec[1]; for(int i = 2; i < (int)vec.size(); i++){ int res = Query(vec[0], cur, vec[i]); if(res == vec[i]) cur = res; } //cout << "Bridging: " << vec[0] << ", " << cur << endl; vector<int> l, r; l.push_back(vec[0]); r.push_back(cur); for(int i = 1; i < (int)vec.size(); i++) if(vec[i] != cur){ int res = Query(vec[0], cur, vec[i]); if(res == vec[0]) l.push_back(vec[i]); else r.push_back(vec[i]); } solve(l); solve(r); if(vec[0] > cur) swap(vec[0], cur); Bridge(vec[0], cur); } void Solve(int N){ vector<int> jizz = vector<int>(); for(int i = 0; i < N; i++) jizz.push_back(i); solve(jizz); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...