#include <bits/stdc++.h>
#include "meetings.h"
using namespace std;
void Ans(int u, int v){
if (u < v) Bridge(u, v);
else Bridge(v, u);
}
void Solve(vector <int> v){
if (v.size() < 2) return;
random_shuffle(v.begin(), v.end());
int l = v[0], r = v[1];
map <int, vector <int>> m;
vector <int> path;
for (auto k : v){
if (k == l || k == r) continue;
int x = Query(l, r, k);
if (!m.count(x)) path.push_back(x);
m[x].push_back(k);
}
sort(path.begin(), path.end(), [&](int x, int y){
return Query(v[0], x, y) == x;
});
int last = v[0];
for (auto k : path) Ans(last, k), last = k;
Ans(last, v[1]);
for (auto it : m) Solve(it.second);
}
void Solve(int n){
srand(time(0));
vector <int> cur(n, 0);
for (int i = 1; i < n; ++ i) cur[i] = i;
Solve(cur);
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
0 ms |
344 KB |
Wrong Answer [3] |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
0 ms |
344 KB |
Wrong Answer [3] |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
0 ms |
344 KB |
Wrong Answer [3] |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
28 ms |
664 KB |
Wrong Answer [1] |
2 |
Halted |
0 ms |
0 KB |
- |