Cod sursa(job #2299177)

Utilizator radugheoRadu Mihai Gheorghe radugheo Data 9 decembrie 2018 00:06:32
Problema Multiplu Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.12 kb

#include <cstdio>
#include <algorithm>

using namespace std;



FILE *fin = freopen("multiplu.in","r",stdin);
FILE *fout = freopen("multiplu.out","w",stdout);

static const int NMAX = 2e6+5;
int a,b;

int coada[NMAX], v[NMAX], cifra[NMAX], drum[NMAX];

void solve(int u)
{
    if(u!=0)
    {
        solve(drum[u]);
        printf("%d", cifra[u]);
    }
}

int main()
{
    scanf("%d%d",&a,&b);
    int cmmmc = a / __gcd(a,b) * b;
    int p,u;
    coada[1] = 1;
    p = 1;
    u = 1;
    v[1] = 1;
    cifra[1] = 1;

    while(p <= u)
    {
        for(int ultCif = 0; ultCif  <= 1; ultCif++)
        {
            int next = (coada[p]*10 +ultCif) % cmmmc;
            if(v[next] == 0)
            {
                u++;
                coada[u] = next;
                v[next] = 1;
                cifra[u] = ultCif;
                drum[u] = p;
                if(next == 0)
                {
                    p = u+1;
                    break;
                }
            }
        }
        p++;
    }
    solve(u);
    return 0;
}
/// (sa vad daca o sursa de 100 ia 100)