Submission #1148962

#TimeUsernameProblemLanguageResultExecution timeMemory
1148962weakweakweakMeetings (JOI19_meetings)C++20
29 / 100
502 ms16340 KiB
#include "meetings.h" #include <bits/stdc++.h> using namespace std; using pii = pair<int,int>; #define fs first #define sc second int n, tt = 0, infunc[8888] = {0}; vector<int> a[2010]; vector<pii> ans; void solve (int rt, vector<int> v) { tt++; for (int i : v) infunc[i] = tt; 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+1); assert(n<350); for (int i = 1; i < n; i++) for (int j = 1; j < n; j++) { if (i == j) 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...