#include <bits/stdc++.h>
using namespace std;
int main() {
ios_base::sync_with_stdio(0); cin.tie(NULL); cout.tie(NULL);
int N; cin >> N;
vector<array<int, 4>> lines(N);
for (int i = 0; i < N; i++) {
cin >> lines[i][0] >> lines[i][1] >> lines[i][2] >> lines[i][3];
if (lines[i][1] > lines[i][3]) {
swap(lines[i][0], lines[i][2]);
swap(lines[i][1], lines[i][3]);
}
}
pair<int, int> dir;
dir = {lines[0][2]-lines[0][0], lines[0][3]-lines[0][1]};
pair<int, int> perp = {dir.second, -dir.first};
auto r = [&] (array<int, 4> &a) -> array<int,4> {
array<int, 4> fa;
fa[0] = dir.first*a[0]-dir.second*a[1];
fa[1] = perp.first*a[0]-perp.second*a[1];
fa[2] = dir.first*a[2]-dir.second*a[3];
fa[3] = perp.first*a[2]-perp.second*a[3];
return fa;
};
sort(lines.begin(), lines.end(), [&](array<int, 4> &a, array<int, 4> &b) {
array<int, 4> fa = r(a), fb = r(b);
return fa < fb;
});
for (int i = 0; i < N-1; i++) {
cout << lines[i][2] << " " << lines[i][3] << " " <<
lines[i+1][0] << " " << lines[i+1][1] << "\n";
}
}
# | 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... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |