Cod sursa(job #971405)

Utilizator TarabanDragosTaraban Dragos-Petru TarabanDragos Data 9 iulie 2013 10:34:41
Problema Multiplu Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include<cstdio>
int a,b,m,c,d,r,C[20000001],T[20000001],u,p,iv,ic,k,i,gasit;
char U[2000001],V[2000001],s[2000001];
FILE *f,*g;
int main(){
    f=fopen("multiplu.in","r");
    g=fopen("multiplu.out","w");
    fscanf(f,"%d%d",&a,&b);
    c=a;
    d=b;
    while(d!=0){
        r=c%d;
        c=d;
        d=r;
    }
    m=a/c*b;
    p=1;
    u=1;
    C[p]=1;
    V[1]=1;
    U[1]=1;
    while(p<=u && !gasit){
        ic=C[p];
        for (i=0;i<=1;i++) {
            iv=(ic*10+i)%m;
            if(V[iv]==0){
                u++;
                C[u]=iv;
                U[u]=i;
                T[u]=p;
                V[iv]=1;
                if(iv==0){
                    gasit=1;
                    break;
                }
            }

        }
        p++;
    }
    while(u!=0){
        s[++k]=U[u];
        u=T[u];
    }
    for(;k;k--){
        fprintf(g,"%d",s[k]);
    }
    fclose(f);
    fclose(g);
    return 0;
}