#include "meetings.h"
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define pb push_back
#define ff first
#define sd second
const int mxN = 2005;
static ll n;
random_device rd;
mt19937_64 gen(rd());
void f(vector<ll> v){
if(v.size() <= 1) return;
uniform_int_distribution<ll> dis(0, v.size() - 1);
for(int i = 0; i < v.size(); i++) swap(v[i], v[dis(gen)]);
ll at = v[dis(gen)];
vector<vector<ll>> vv;
vector<ll> val;
for(int i = 0; i < v.size(); i++){
ll it = v[i];
if(at == it) continue;
bool ok = true;
for(int j = 0; j < val.size(); j++){
if(val[j] == it){
vv[j].pb(it);
ok = false;
break;
}
ll ans = Query(at, val[j], it);
if(ans != at){
vv[j].pb(it);
if(ans != val[j]) val[j] = ans;
ok = false;
break;
}
}
if(ok){
val.pb(it);
vv.pb({it});
}
}
for(int i = 0; i < vv.size(); i++){
Bridge(min(val[i], at), max(val[i], at));
f(vv[i]);
}
}
void Solve(int N) {
n = N;
vector<ll> v(n);
iota(v.begin(), v.end(), 0);
f(v);
}
| # | 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... |