#include <algorithm>
#include <iostream>
#include <iterator>
#include <vector>
struct Racecar
{
int myTotalPoints;
};
std::ostream& operator <<(std::ostream& os, Racecar const& r)
{
return os << r.myTotalPoints;
}
int main()
{
std::vector<Racecar> racecars = { {1}, {5}, {2}, {4}, {6}, {3} };
std::sort(std::begin(racecars), std::end(racecars),
[](Racecar const& a, Racecar const& b) {
return b.myTotalPoints < a.myTotalPoints;
});
std::copy(std::begin(racecars), std::end(racecars),
std::ostream_iterator<Racecar>(std::cout, "\n"));
}
I2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aXRlcmF0b3I+CiNpbmNsdWRlIDx2ZWN0b3I+CgpzdHJ1Y3QgUmFjZWNhcgp7CiAgICBpbnQgbXlUb3RhbFBvaW50czsKfTsKCnN0ZDo6b3N0cmVhbSYgb3BlcmF0b3IgPDwoc3RkOjpvc3RyZWFtJiBvcywgUmFjZWNhciBjb25zdCYgcikKewogICAgcmV0dXJuIG9zIDw8IHIubXlUb3RhbFBvaW50czsKfQoKaW50IG1haW4oKQp7CiAgICBzdGQ6OnZlY3RvcjxSYWNlY2FyPiByYWNlY2FycyA9IHsgezF9LCB7NX0sIHsyfSwgezR9LCB7Nn0sIHszfSB9OwoKICAgIHN0ZDo6c29ydChzdGQ6OmJlZ2luKHJhY2VjYXJzKSwgc3RkOjplbmQocmFjZWNhcnMpLAogICAgICAgIFtdKFJhY2VjYXIgY29uc3QmIGEsIFJhY2VjYXIgY29uc3QmIGIpIHsKICAgICAgICByZXR1cm4gYi5teVRvdGFsUG9pbnRzIDwgYS5teVRvdGFsUG9pbnRzOyAgIAogICAgICAgIH0pOwoKICAgIHN0ZDo6Y29weShzdGQ6OmJlZ2luKHJhY2VjYXJzKSwgc3RkOjplbmQocmFjZWNhcnMpLCAKICAgICAgICBzdGQ6Om9zdHJlYW1faXRlcmF0b3I8UmFjZWNhcj4oc3RkOjpjb3V0LCAiXG4iKSk7Cn0K