Cod sursa(job #1655578)

Utilizator RaduMirceaAndreiRadu Mircea Andrei RaduMirceaAndrei Data 18 martie 2016 08:29:00
Problema Multiplu Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.26 kb
# include <fstream>
# define DIM 1500000
using namespace std;
ifstream fin("multiplu.in");
ofstream fout("multiplu.out");
int a,b,r,c1,d,nr,y,i,cmmmc,c[DIM],u,p,ok=1,t[DIM],cif[DIM],sol[DIM/10];
int main () {
    fin>>a>>b;
    c1=a;
    d=b;
    while(b!=0){
        r=a%b;
        a=b;
        b=r;
    }
    cmmmc=(c1*d)/a;
    c[1]=1;
    cif[1]=1;
    t[1]=0;
    u=1;
    p=1;
    if(c[1]%cmmmc==0){
        fout<<1<<"\n";
        return 0;
    }
    for(;;){
        c[++u]=c[p]*10;
        cif[u]=0;
        t[u]=p;
        c[u]%=cmmmc;
        if(c[u]==0){
            sol[++nr]=cif[u];
            y=t[u];
            while(y!=0){
                sol[++nr]=cif[y];
                y=t[y];
            }
            for(i=nr;i>=1;i--)
                fout<<sol[i];
            fout<<"\n";
            return 0;
        }
        c[++u]=c[p]*10+1;
        cif[u]=1;
        t[u]=p;
        c[u]%=cmmmc;
        if(c[u]==0){
            sol[++nr]=cif[u];
            y=t[u];
            while(y!=0){
                sol[++nr]=cif[y];
                y=t[y];
            }
            for(i=nr;i>=1;i--)
                fout<<sol[i];
            fout<<"\n";
            return 0;
        }
        p++;
    }
    return 0;
}