Cod sursa(job #1658032)

Utilizator DeehoroEjkoliPop Darian DeehoroEjkoli Data 20 martie 2016 23:13:11
Problema Multiplu Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.36 kb
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("multiplu.in");
ofstream fout("multiplu.out");

bool array_now[10];

vector < int > result_numbers;

void main_backtrack(short position, short chars) {
    array_now[position] = 1;
    if (position == chars) {
        int put_in_vector = 1;
        for (int i = 2; i <= chars; ++i)
            if (array_now[i] == 1)
                put_in_vector = put_in_vector * 10 + 1;
            else
                put_in_vector *= 10;
        result_numbers.push_back(put_in_vector);
    }
    else
        main_backtrack(position + 1, chars);
    array_now[position] = 0;
    if (position == chars) {
        int put_in_vector = 1;
        for (int i = 2; i <= chars; ++i)
            if (array_now[i] == 1)
                put_in_vector = put_in_vector * 10 + 1;
            else
                put_in_vector *= 10;
        result_numbers.push_back(put_in_vector);
    }
    else
        main_backtrack(position + 1, chars);
}

int main()
{
    int a, b;
    fin >> a >> b;
    result_numbers.push_back(1);
    for (int i = 2; i <= 7; ++i)
        main_backtrack(2, i);
    for (int i = 0; i <= result_numbers.size() - 1; ++i)
        if (result_numbers[i] % a == 0 and result_numbers[i] % b == 0) {
            fout << result_numbers[i];
            return 0;
        }
}