Submission #791588

#TimeUsernameProblemLanguageResultExecution timeMemory
791588petezaRoads (CEOI20_roads)C++14
30 / 100
136 ms7800 KiB
#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 - a.first*(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), swap(xx1, xx2); } else { if(xx1 > xx2) swap(xx1, xx2), swap(yy1, yy2); } lns.emplace_back(xx1, yy1, xx2, yy2); } sort(lns.begin(), lns.end(), [](line a, line b){ if(abs(a.gety()-b.gety())>=1e-9) return a.gety() > b.gety(); return a.a < b.a; }); for(int i=1;i<lns.size();i++) cout << lns[i-1].b << ' ' << lns[i].a << '\n'; }

Compilation message (stderr)

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';
      |                 ~^~~~~~~~~~~
#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...