Submission #1233014

#TimeUsernameProblemLanguageResultExecution timeMemory
1233014LaMatematica14Roads (CEOI20_roads)C++20
0 / 100
1 ms328 KiB
#include <bits/stdc++.h> using namespace std; int main() { ios_base::sync_with_stdio(0); cin.tie(NULL); cout.tie(NULL); long long N; cin >> N; vector<array<long long, 4>> lines(N); for (long long i = 0; i < N; i++) { cin >> lines[i][0] >> lines[i][1] >> lines[i][2] >> lines[i][3]; } pair<long long, long long> dir; dir = {lines[0][2]-lines[0][0], lines[0][3]-lines[0][1]}; pair<long long, long long> perp = {dir.second, -dir.first}; auto r = [&] (array<long long, 4> &a) -> array<long long,4> { array<long long, 4> fa; fa[1] = dir.first*a[0]+dir.second*a[1]; fa[0] = perp.first*a[0]+perp.second*a[1]; fa[3] = dir.first*a[2]+dir.second*a[3]; fa[2] = perp.first*a[2]+perp.second*a[3]; if (fa[1] > fa[3]) { swap(fa[0], fa[2]); swap(fa[1], fa[3]); } return fa; }; for (int i = 0; i < N; i++) array<long long, 4> _ = r(lines[i]); sort(lines.begin(), lines.end(), [&](array<long long, 4> &a, array<long long, 4> &b) { array<long long, 4> fa = r(a), fb = r(b); return fa < fb; }); for (long long i = 0; i < N-1; i++) { cout << lines[i][2] << " " << lines[i][3] << " " << lines[i+1][0] << " " << lines[i+1][1] << "\n"; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...