Pagini recente » Cod sursa (job #1344941) | Cod sursa (job #1371114) | Cod sursa (job #263448) | Monitorul de evaluare | Cod sursa (job #943175)
Cod sursa(job #943175)
#include <cstdio>
struct tipspecial{
long c,r,t;
};
tipspecial aux,q[2000010];
bool fals[2000010];
int rez[2000010];
int a,b,c,u,p,CM,i,n;
int euclid (int a,int b){
int r,Aa=a,Bb=b;
while ( Bb ){
r=Aa%Bb;
Aa=Bb;
Bb=r;
}
return Aa;
}
int main () {
FILE*f=fopen("multiplu.in","r");
FILE*h=fopen("multiplu.out","w");
fscanf(f,"%d%d",&a,&b);
int CM=(a*b)/euclid(a,b);
p=u=1;
aux.c=1;
aux.r=(aux.c)%CM;
aux.t=0;
q[p]=aux;
while ( p<=u ){
if ( q[p].r==0 )
break;
for ( c=0;c<2;c++ ){
aux.c=c;
aux.r=(q[p].r*10+c)%CM;
aux.t=p;
if ( !fals[aux.r] ){
fals[aux.r]=1;
q[++u]=aux;
}
}
p++;
}
c=0;
while ( p ){
rez[++c]=q[p].c;
p=q[p].t;
}
for ( i=c;i>=1;i-- )
fprintf(h,"%d",rez[i]);
fprintf(h,"\n");
return 0;
}