Advertisement
myloyo

задача про сортировку точек с пары

Mar 28th, 2023 (edited)
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.03 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. #include <cmath>
  4. #include <algorithm>
  5. using namespace std;
  6.  
  7. struct point {
  8.     int x, y;
  9.     string name;
  10.     double dist();
  11. };
  12. double point::dist() {
  13.     return sqrt((double)(x * x + y * y));
  14. }
  15. void sort(point* y, int n) {
  16.     point temp;
  17.     int i, j;
  18.     for (i = 0; i < n - 1; i++) {
  19.         for (j = n - 1; j > i; j--) {
  20.             if (y[j].dist() < y[j - 1].dist()) {
  21.                 temp = y[j];
  22.                 y[j] = y[j - 1];
  23.                 y[j - 1] = temp;
  24.             }
  25.             if ((y[j].dist() == y[j - 1].dist()) && (y[j].name < y[j - 1].name)) {
  26.                 temp = y[j];
  27.                 y[j] = y[j - 1];
  28.                 y[j - 1] = temp;
  29.             }
  30.         }
  31.     }
  32. }
  33.  
  34. int main() {
  35.     int n;
  36.     cin >> n;
  37.     point* t = new point[n];
  38.     for (int i = 0; i < n; i++) {
  39.         cin >> t[i].x >> t[i].y >> t[i].name;
  40.     }
  41.     sort(t, n);
  42.     for (int i = 0; i < n; i++) {
  43.         cout << t[i].name << " " << t[i].x << " " << t[i].y << endl;
  44.     }
  45. }
  46.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement