Cod sursa(job #2782854)

Utilizator mihaistamatescuMihai Stamatescu mihaistamatescu Data 13 octombrie 2021 11:56:58
Problema Multiplu Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <fstream>
#include <bitset>
#include <deque>
#include <cstring>
#include <algorithm>

#define DIM 2000010

using namespace std;

ifstream fin("multiplu.in");
ofstream fout("multiplu.out");

int a, b, x, p, u, crt, ant, i;
int c[DIM], t[DIM];
bitset<DIM> v, uc;

void afis(int n){
    if (n!=0){
        afis(t[n]);
        fout<<uc[n];
    }
}

int main() {
    fin >> a >> b;
    x = a / __gcd(a, b) * b;
    p = 1;
    u = 1;
    c[p] = 1;
    v[1] = true;
    uc[1]=1;
    while (p <= u) {
        ant = c[p];
        for (i = 0; i <= 1; i++) {
            crt = (ant * 10 + i) % x;
            if (!v[crt]) {
                v[crt] = true;
                c[++u] = crt;
                uc[u] = i;
                t[u] = p;
                if (crt == 0) {
                    break;
                }
            }
        }
        if (i != 2) {
            break;
        }
        p++;
    }
    afis(u);
    return 0;
}