Cod sursa(job #1396246)

Utilizator AndyCatrunaCatruna Andy AndyCatruna Data 22 martie 2015 12:46:51
Problema Multiplu Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <fstream>
#define dim 2000005
using namespace std;
ifstream fin("multiplu.in");
ofstream fout("multiplu.out");
int n,i,m,r,p,u,a,b,f[dim],q[dim],T[dim],t[dim],nn,x,sol[dim];
int cmmmc(int a , int b){
    int r=0,aa=a,bb=b;
    while(b!=0){
        r=a%b;
        a=b;
        b=r;
    }
    return aa*bb/a;
}
int main(){
    fin>>a>>b;
    m=cmmmc(a,b);
    p=1;u=1;q[1]=1;f[1]=1;t[1]=1;
    while(p<=u){
        n=q[p];
        for(i=0;i<=1;i++){
            nn=(n*10+i)%m;
            if(f[nn]==0){
                u++;
                q[u]=nn;
                f[nn]=1;
                T[u]=p;
                t[u]=i;
                if(nn==0){
                    break;
                }
            }
        }
        p++;
        if(nn==0){
            break;
        }
    }
    while(u!=0){
        sol[++x]=t[u];
        u=T[u];
    }
    for(i=x;i>=1;i--){
        fout<<sol[i];
    }




    return 0;
}