Advertisement
Guest User

Untitled

a guest
Jul 27th, 2017
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.84 KB | None | 0 0
  1. #include <iostream>
  2. #include <algorithm>
  3. #include <vector>
  4.  
  5. using namespace std;
  6.  
  7. struct student{
  8. int id;
  9. int points;
  10. student(int i, int p)
  11. :id(i), points(p)
  12. {
  13. }
  14. };
  15.  
  16. std::ostream& operator<<(std::ostream& out, const student& s)
  17. {
  18. out << s.id << " " << s.points;
  19. return out;
  20. }
  21.  
  22. bool cmp_by_points(const student& s1, const student& s2)
  23. {
  24. if(s1.points != s2.points)
  25. return s1.points > s2.points;
  26. else
  27. return s1.id < s2.id;
  28. }
  29.  
  30. template<class Iter>
  31. void print_container(Iter b, Iter e)
  32. {
  33. while(b != e)
  34. {
  35. cout << *b++ << endl;
  36. }
  37. }
  38.  
  39. int main()
  40. {
  41. int n;
  42. cin >> n;
  43. vector<student> v;
  44.  
  45. int id, pnts;
  46. for(int i = 0; i < n; ++i)
  47. {
  48. cin >> id >> pnts;
  49. v.push_back(student(id, pnts));
  50. }
  51.  
  52. sort(v.begin(), v.end(), cmp_by_points);
  53.  
  54. print_container(v.begin(), v.end());
  55. return 0;
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement