Cod sursa(job #1689284)

Utilizator NicolaalexandraNicola Alexandra Mihaela Nicolaalexandra Data 14 aprilie 2016 09:04:45
Problema Multiplu Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.3 kb
#include <fstream>

using namespace std;

int a,b,a1,b2,r,i,j,p,u,k,m,vec,ok,c[2000001],v[2000001],t[2000001],cif[2000001],e[2000001];

ifstream fin ("multiplu.in");

ofstream fout ("multiplu.out");

int main (){

    fin>>a>>b;
    a1 = a;
    b2 = b;
    while (b2 != 0){
        r = a1 % b2;
        a1 = b2;
        b2 = r;
    }
    m = a*b/a1;
    p = 1;
    u = 1;
    c[1] = 1;
    v[1] = 1;
    while (p<=u){
        // pe pozitia c[p] e un rest
        // din el obtinem alte doua pe care le punem la coada
        ok = 0;
        for (i=0;i<=1;i++){
            vec = (c[p]*10 + i ) % m;
            if (v[vec] == 0){
                v[vec] = 1;
                u++;
                c[u] = vec;
                t[u] = p;
                cif[u] = i;
                if (vec == 0){
                    //**
                    k = 0;
                    while (u != 0){
                        //fout<<cif[u];
                        e[++k] = cif[u];
                        u = t[u];
                    }

                    ok = 1;
                    break;
                }
            }

        }
        if (ok == 1)
            break;

        p++;
    }
    fout<<1;
    for (i=k-1;i>=1;i--){
        fout<<e[i];
    }





    return 0;

}