#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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |