제출 #1148965

#제출 시각아이디문제언어결과실행 시간메모리
1148965weakweakweakMeetings (JOI19_meetings)C++20
29 / 100
1285 ms16392 KiB
#include "meetings.h" #include <bits/stdc++.h> using namespace std; using pii = pair<int,int>; #define fs first #define sc second int n; vector<int> a[2010]; vector<pii> ans; void solve (int rt, vector<int> v) { for (int i : v) { bool y = 1; for (int j : v) if (i != j and !(a[i][j] == i or a[i][j] == rt)) y = 0; if (y) { // cout << "!" << rt << ' ' << i << '\n'; ans.push_back(make_pair(rt, i)); vector<int> v2; for (int j : v) if (i != j and a[i][j] == i) v2.push_back(j); solve(i, v2); } } } void Solve(int N) { n = N; ans.clear(); for (int i = 0; i <= n; i++) a[i].resize(n+5); for (int i = 1; i < n; i++) for (int j = 1; j < n; j++) { if (i == j) continue; if (i > j) { a[i][j] = a[j][i]; continue; } a[i][j] = Query(0, i, j); } vector<int> v; for (int i = 1; i < n; i++) v.push_back(i); solve(0, v); for (pii p : ans) { if (p.fs > p.sc) swap(p.fs, p.sc); Bridge(p.fs, p.sc); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...