#include <bits/stdc++.h>
using namespace std;
int n, xx1, yy1, xx2, yy2;
using pii = pair<int, int>;
struct line {
pii a, b;
line(int ax, int ay, int bx, int by){a={ax,ay};b={bx,by};}
double gety() {
if(a.first == b.first) return -a.first;
return a.second - (1.00*b.second-a.second)/(b.first-a.first);
}
};
vector<line> lns;
ostream& operator<<(ostream& os, pii a) {
os << a.first << ' ' << a.second;
return os;
}
int main() {
cin >> n;
for(int i=0;i<n;i++) {
cin >> xx1 >> yy1 >> xx2 >> yy2;
if(xx1 == xx2) {
if(yy1 > yy2) swap(yy1, yy2);
} else {
if(xx1 > xx2) swap(xx1, xx2);
}
lns.emplace_back(xx1, yy1, xx2, yy2);
}
sort(lns.begin(), lns.end(), [](line a, line b){
if(a.gety() != b.gety()) return a.gety() > b.gety();
return a.a < b.b;
});
for(int i=1;i<lns.size();i++) cout << lns[i-1].b << ' ' << lns[i].a << '\n';
}
Compilation message
roads.cpp: In function 'int main()':
roads.cpp:37:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<line>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
37 | for(int i=1;i<lns.size();i++) cout << lns[i-1].b << ' ' << lns[i].a << '\n';
| ~^~~~~~~~~~~
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Failed |
0 ms |
212 KB |
Condition failed: "pf == Sline.end() || !Cross(S[*pi], S[*pf])" |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
212 KB |
Output is correct |
2 |
Correct |
1 ms |
300 KB |
Output is correct |
3 |
Correct |
2 ms |
340 KB |
Output is correct |
4 |
Correct |
22 ms |
816 KB |
Output is correct |
5 |
Correct |
36 ms |
1220 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
212 KB |
Output is correct |
2 |
Correct |
1 ms |
212 KB |
Output is correct |
3 |
Correct |
2 ms |
340 KB |
Output is correct |
4 |
Correct |
18 ms |
848 KB |
Output is correct |
5 |
Correct |
29 ms |
1288 KB |
Output is correct |
6 |
Failed |
0 ms |
212 KB |
Condition failed: "iB != P2I.end()" |
7 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
212 KB |
Output is correct |
2 |
Correct |
1 ms |
212 KB |
Output is correct |
3 |
Correct |
2 ms |
340 KB |
Output is correct |
4 |
Correct |
14 ms |
864 KB |
Output is correct |
5 |
Correct |
30 ms |
1280 KB |
Output is correct |
6 |
Failed |
1 ms |
212 KB |
Condition failed: "pf == Sline.end() || !Cross(S[*pa], S[*pf])" |
7 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Failed |
0 ms |
212 KB |
Condition failed: "pf == Sline.end() || !Cross(S[*pi], S[*pf])" |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Failed |
1 ms |
212 KB |
Condition failed: "pf == Sline.end() || !Cross(S[*pi], S[*pf])" |
2 |
Halted |
0 ms |
0 KB |
- |