#include <iostream>
#include <algorithm>

int main()
{
    int numbers[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
    
    int tested_combination_count = 0;
    int total_permutation_count = 0;
    int last_blue = 0;
    do
    {
        int green = numbers[0];
        int yellow = numbers[1];
        int purple = numbers[2];
        int orange = numbers[3];
        int red = numbers[4];
        int blue = numbers[5];
        
        ++total_permutation_count;
        if (last_blue == blue) {
            continue;
        }
        last_blue = blue;
        ++tested_combination_count;
        if (purple * 10 + green  == green * yellow
            && purple * 10 + orange == red * red
            && yellow * 10 + orange == red * blue
            &&    red * 10 + green  == green * blue) {
            std::cout << green << " " << yellow << " " << purple << " "
                      << orange << " " << red << " " << blue << std::endl;
        }
    } while (std::next_permutation(std::begin(numbers), std::end(numbers)));
    std::cout << "Combination tested:" << tested_combination_count
              << " on a total of " << total_permutation_count << std::endl;
}