제출 #492494

#제출 시각아이디문제언어결과실행 시간메모리
492494LittleCubeRoads (CEOI20_roads)C++14
30 / 100
169 ms9728 KiB
#include <bits/stdc++.h> #define ll long long #define pii pair<int, int> #define pll pair<ll, ll> #define F first #define S second using namespace std; int N; ll dx, dy; pll p[200005]; vector<int> v; signed main() { cin >> N; for (int i = 1; i <= N; i++) cin >> p[2 * i - 1].F >> p[2 * i - 1].S >> p[2 * i].F >> p[2 * i].S; dx = p[2].F - p[1].F; dy = p[2].S - p[1].S; for (int i = 1; i <= N; i++) v.emplace_back(i); sort(v.begin(), v.end(), [&](int i1, int i2) { if (p[i1 * 2].F * dy - p[i1 * 2].S * dx != p[i2 * 2].F * dy - p[i2 * 2].S * dx) return p[i1 * 2].F * dy - p[i1 * 2].S * dx < p[i2 * 2].F * dy - p[i2 * 2].S * dx; else return p[i1 * 2] < p[i2 * 2]; }); for (int i = 1; i < N; i++) cout << max(p[2 * v[i - 1] - 1], p[2 * v[i - 1]]).F << " " << max(p[2 * v[i - 1] - 1], p[2 * v[i - 1]]).S << " " << min(p[2 * v[i] - 1], p[2 * v[i]]).F << " " << min(p[2 * v[i] - 1], p[2 * v[i]]).S << '\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...