fork download
  1. #include <iostream>
  2. #include <vector>
  3. #include <algorithm>
  4. using namespace std;
  5.  
  6.  
  7. bool Compare(pair <int, int>a, pair <int, int> b)
  8. {
  9. if (a.first != b.first) {
  10. return a.first < b.first;
  11. }
  12. return a.second > b.second;
  13. }
  14. void Quicks(vector<pair <int, int>>& a, int low, int high)
  15. {
  16. if (low < high)
  17. {
  18. int start = low;
  19. int end = high;
  20. pair <int, int> pivot = a[low];
  21. while (start <= end)
  22. {
  23. while (Compare(a[start], pivot))
  24. {
  25. start++;
  26. }
  27. while (Compare(a[end], pivot))
  28. {
  29. end--;
  30. }
  31. if (start <= end)
  32. {
  33.  
  34. swap(a[start], a[end]);
  35. start++;
  36. end--;
  37.  
  38. }
  39. }
  40.  
  41. Quicks(a, low, end);
  42. Quicks(a, start, high);
  43. }
  44. }
  45. int main()
  46. {
  47. int n; cin >> n;
  48. vector <pair <int, int>>a(n);
  49. for (int i = 0; i < n; i++)
  50. {
  51. cin >> a[i].first >> a[i].second;
  52. }
  53. Quicks(a, 0, n - 1);
  54. for (int i = 0; i < n; i++)
  55. {
  56. cout << a[i].first << " " << a[i].second << endl;
  57. }
  58. return 0;
  59.  
  60. }
Success #stdin #stdout 0.01s 5308KB
stdin
Standard input is empty
stdout
Standard output is empty