Cod sursa(job #593086)

Utilizator rudarelLup Ionut rudarel Data 1 iunie 2011 11:26:20
Problema Multiplu Scor 100
Compilator cpp Status done
Runda pregatire_lot_juniori_1 Marime 0.74 kb
#include<fstream.h>
#include<string.h>
# define DIM 2000001
char viz[DIM],s[DIM];
int A,B,M,c;
int p,u,ok,i;
int r[DIM],C[DIM],t[DIM];
 
ifstream f ("multiplu.in");
ofstream g ("multiplu.out");
int main (){
 
f>>A>>B;
M=A*B;
while (B){
c=A%B;
A=B;
B=c;
}
M/=A;
 
p=u=1;
r[1]=1;
viz[1]=1;
ok=1;
C[1]=1;
while(ok){
    for(i=0;i<=1;i++)
        if(viz[(r[p]*10+i)%M]==0){
            u++;
            r[u]=(r[p]*10+i)%M;
            viz[r[u]]=1;
            C[u]=i;
            t[u]=p;
            if(r[u]==0){
                ok=0;
                break;
            }
         
        }
    p++;
}
 
i=0;
 
while(u){
    s[i++]=C[u]+'0';
    u=t[u];
}
 
for(i--;i>=0;i--)
    g<<s[i];
return 0;
}