Advertisement
Guest User

Untitled

a guest
Dec 11th, 2019
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.71 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4.  
  5. typedef struct
  6. {
  7.     long int m;
  8.     long int v;
  9. } P;
  10.  
  11. P p[10010];
  12. int nEl = 0;
  13.  
  14. void print()
  15. {
  16.     for (int i = 0; i < nEl; ++i)
  17.     {
  18.         printf("%ld %ld\n", p[i].m, p[i].v);
  19.     }
  20. }
  21.  
  22. int cmp(const void *arg1, const void *arg2)
  23. {
  24.     P *p1 = (P *) arg1;
  25.     P *p2 = (P *) arg2;
  26.  
  27.     if (p1->m * p1->v == p2->m * p2->v)
  28.     {
  29.         if (p2->m >= p1->m)
  30.             return 1;
  31.         else
  32.             return -1;
  33.     }
  34.     else if (p1->m * p1->v > p2->m * p2->v)
  35.         return 1;
  36.     else
  37.         return -1;
  38.  
  39.     return 0;
  40. }
  41.  
  42. int main()
  43. {
  44.     scanf("%d", &nEl);
  45.     for (int i = 0; i < nEl; ++i)
  46.     {
  47.         scanf("%ld", &(p[i].m));
  48.         scanf("%ld", &(p[i].v));
  49.     }
  50.  
  51.     qsort(&p, nEl, sizeof(P), cmp);
  52.  
  53.     print();
  54.  
  55.     return 0;
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement