Pagini recente » Cod sursa (job #3288429) | Cod sursa (job #2070714) | Cod sursa (job #1420068) | Cod sursa (job #7128) | Cod sursa (job #244039)
Cod sursa(job #244039)
#include<stdio.h>
struct queue
{
char cif;
long r;
long pred;
};
long C,nr;
char f[2000001];// 2000001
queue q[2000301];
void read()
{
freopen("multiplu.in","r",stdin);
freopen("multiplu.out","w",stdout);
long ca,cb,a,b,r;
scanf("%ld%ld",&a,&b);
ca=a;
cb=b;
while(a)
{
r=b%a;
b=a;
a=r;
}
C=ca*cb/b;
}
void sol(long n)
{
if(q[n].pred!=0)
sol(q[n].pred);
printf("%d",q[n].cif);
}
void rez()
{
long u,p,r1,r2;
q[1].cif=1;
q[1].r=1;
q[1].pred=0;
f[1]=1;
u=p=1;
while(p<=u)
{
// adaugam 0
r2=(q[p].r*10)%C;
if(f[r2]==0)
{
f[r2]=1;
q[++u].r=r2;
q[u].cif=0;
q[u].pred=p;
}
if(r2==0)
{
sol(u);
return;
}
// adaugam 1
r1=(q[p].r*10+1)%C;
if(f[r1]==0)
{
f[r1]=1;
q[++u].r=r1;
q[u].cif=1;
q[u].pred=p;
}
if(r1==0)
{
sol(u);
return;
}
p++;
}
}
int main()
{
read();
rez();
return 0;
}