RedHotChiliPepper

сортируем векторы по углам на тригоном круге

Apr 13th, 2021 (edited)
171
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.44 KB | None | 0 0
  1. ll sq[2][2] = { {3,2},{4,1} };
  2. sort(v.begin(), v.end(), [sq](auto& a, auto& b) {
  3.         ll x1 = a.first.first;
  4.         ll x2 = b.first.first;
  5.         ll y1 = a.first.second;
  6.         ll y2 = b.first.second;
  7.         if (sq[x1 >= 0][y1 >= 0] != sq[x2 >= 0][y2 >= 0]) {
  8.             return (sq[x1 >= 0][y1 >= 0] < sq[x2 >= 0][y2 >= 0]);
  9.         }
  10.         else {
  11.             ll _mul = x1 * y2 - x2 * y1;
  12.             if (!_mul)
  13.                 return (x1 * x1 + y1 * y1) < (x2 * x2 + y2 * y2);
  14.             return (_mul > 0);
  15.         }
  16. });
Add Comment
Please, Sign In to add comment