#include <iostream>
#include <vector>
#include <tuple>
#include <set>
#include <unordered_map>
#include <algorithm>
#include <iterator>
using namespace std;
int main() {
std::vector<int> data = {7, 9, 2, 7, 9};
std::unordered_map<int,int> count;
for (auto v : data)
count[v]++;
std::sort(
data.begin()
, data.end()
, [&](int a, int b) {
return std::tie(count[a], a) > std::tie(count[b], b);
}
);
std::copy(data.begin(), data.end(), std::ostream_iterator<int>(std::cout, " "));
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8dHVwbGU+CiNpbmNsdWRlIDxzZXQ+CiNpbmNsdWRlIDx1bm9yZGVyZWRfbWFwPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8aXRlcmF0b3I+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKCXN0ZDo6dmVjdG9yPGludD4gZGF0YSA9IHs3LCA5LCAyLCA3LCA5fTsKCXN0ZDo6dW5vcmRlcmVkX21hcDxpbnQsaW50PiBjb3VudDsKCWZvciAoYXV0byB2IDogZGF0YSkKCSAgICBjb3VudFt2XSsrOwoJc3RkOjpzb3J0KAoJICAgIGRhdGEuYmVnaW4oKQoJLCAgIGRhdGEuZW5kKCkKCSwgICBbJl0oaW50IGEsIGludCBiKSB7CgkgICAgICAgIHJldHVybiBzdGQ6OnRpZShjb3VudFthXSwgYSkgPiBzdGQ6OnRpZShjb3VudFtiXSwgYik7CgkgICAgfQoJKTsKCXN0ZDo6Y29weShkYXRhLmJlZ2luKCksIGRhdGEuZW5kKCksIHN0ZDo6b3N0cmVhbV9pdGVyYXRvcjxpbnQ+KHN0ZDo6Y291dCwgIiAiKSk7CglyZXR1cm4gMDsKfQ==