#include "meetings.h"
#include <bits/stdc++.h>
using namespace std;
using pi = pair<int, int>;
#define sz(v) ((int)(v).size())
mt19937 rng(0x14004);
int randint(int lb, int ub){ return uniform_int_distribution<int>(lb, ub)(rng); }
void bridge(int x, int y){ Bridge(min(x, y), max(x, y)); }
void dfs(vector<int> v){
if(v.size() == 1) return;
if(v.size() == 2){
bridge(v[0], v[1]);
return;
}
shuffle(v.begin(), v.end(), rng);
vector<pi> ords;
ords.emplace_back(v[0], v[0]);
ords.emplace_back(v[1], v[1]);
for(int i=2; i<v.size(); i++){
int q = Query(v[0], v[1], v[i]);
ords.emplace_back(q, i);
}
sort(ords.begin(), ords.end(), [&](pi a, pi b){
if(a.first != b.first) return Query(v[0], a.first, b.first) == b.first;
return a.second < b.second;
});
for(int i = 0; i < sz(ords); ){
int e = i;
vector<int> w;
while(e < sz(ords) && ords[i].first == ords[e].first){
w.push_back(ords[e++].second);
}
dfs(w);
if(e < sz(ords)) bridge(ords[i].first, ords[e].first);
i = e;
}
}
void Solve(int N) {
vector<int> v(N);
iota(v.begin(), v.end(), 0);
dfs(v);
}
Compilation message
meetings.cpp: In function 'void dfs(std::vector<int>)':
meetings.cpp:21:16: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
21 | for(int i=2; i<v.size(); i++){
| ~^~~~~~~~~
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
1 ms |
328 KB |
Wrong Answer [1] |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
1 ms |
328 KB |
Wrong Answer [1] |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
1 ms |
328 KB |
Wrong Answer [1] |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
104 ms |
524 KB |
Wrong Answer [1] |
2 |
Halted |
0 ms |
0 KB |
- |