fork download
#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;
}
Success #stdin #stdout 0s 3028KB
stdin
Standard input is empty
stdout
The largest number is 987510