#include <iostream>
#include <map>
#include <sstream>
#include <set>
#define COUNT(a) (sizeof(a) / sizeof((a)[0]))
void add_digits(std::set<int> &digits, int n)
{
if (n == 0) {
digits.insert(0);
} else {
while (n) {
digits.insert(n % 10);
n /= 10;
}
}
}
int main()
{
int nums[] = { 709, 8, 70, 71, 5, 7 };
std::set<int> digits;
for (int i = 0; i < COUNT(nums); i++)
add_digits(digits, nums[i]);
std::cout << "The largest number is ";
for (std::set<int>::reverse_iterator it = digits.rbegin(); it != digits.rend(); it++)
std::cout << *it;
std::cout << std::endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bWFwPgojaW5jbHVkZSA8c3N0cmVhbT4KI2luY2x1ZGUgPHNldD4KCiNkZWZpbmUgQ09VTlQoYSkgKHNpemVvZihhKSAvIHNpemVvZigoYSlbMF0pKQoKdm9pZCBhZGRfZGlnaXRzKHN0ZDo6c2V0PGludD4gJmRpZ2l0cywgaW50IG4pCnsKICAgIGlmIChuID09IDApIHsKCQlkaWdpdHMuaW5zZXJ0KDApOwoJfSBlbHNlIHsKCQl3aGlsZSAobikgewoJCQlkaWdpdHMuaW5zZXJ0KG4gJSAxMCk7CgkJCW4gLz0gMTA7CgkJfQoJfQp9CgppbnQgbWFpbigpCnsKCWludCBudW1zW10gPSB7IDcwOSwgOCwgNzAsIDcxLCA1LCA3IH07CiAKCXN0ZDo6c2V0PGludD4gZGlnaXRzOwoJZm9yIChpbnQgaSA9IDA7IGkgPCBDT1VOVChudW1zKTsgaSsrKQoJCWFkZF9kaWdpdHMoZGlnaXRzLCBudW1zW2ldKTsKCgoJc3RkOjpjb3V0IDw8ICJUaGUgbGFyZ2VzdCBudW1iZXIgaXMgIjsKCWZvciAoc3RkOjpzZXQ8aW50Pjo6cmV2ZXJzZV9pdGVyYXRvciBpdCA9IGRpZ2l0cy5yYmVnaW4oKTsgaXQgIT0gZGlnaXRzLnJlbmQoKTsgaXQrKykKCQlzdGQ6OmNvdXQgPDwgKml0OwoKCXN0ZDo6Y291dCA8PCBzdGQ6OmVuZGw7CglyZXR1cm4gMDsKfQ==