Submission #1216850

#TimeUsernameProblemLanguageResultExecution timeMemory
1216850MateiKing80Roads (CEOI20_roads)C++20
15 / 100
27 ms1608 KiB
#include <bits/extc++.h> using namespace std; using ld = long double; using ll = long long; #define int ll using pii = pair<int, int>; #define fr first #define sc second pii pts[200000]; int dx, dy; bool cmp(pii a, pii b) { long double ca = (ld(a.sc) / ld(dy)) * dx + a.fr; long double cb = (ld(b.sc) / ld(dy)) * dx + b.fr; if (ca == cb) return a < b; return ca < cb; } signed main() { int n; cin >> n; for (int i = 0; i < 2 * n; i ++) cin >> pts[i].fr >> pts[i].sc; dx = pts[0].fr - pts[1].fr; if (dx < 0) for (int i = 0; i < 2 * n; i += 2) swap(pts[i], pts[i + 1]); dy = pts[0].sc - pts[1].sc; int sus = abs(__gcd(dx, dy)); dx /= sus; dy /= sus; sort(pts, pts + 2 * n, cmp); for (int i = 0; i < n - 1; i ++) cout << pts[2 * i + 1].fr << " " << pts[2 * i + 1].sc << " " << pts[2 * i + 2].fr << " " << pts[2 * i + 2].sc << '\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...