Pagini recente » Cod sursa (job #353749) | Cod sursa (job #354087) | Cod sursa (job #355031) | Cod sursa (job #354089) | Cod sursa (job #354098)
Cod sursa(job #354098)
#include<cstdio>
const int M = (1<<22);
int a,b,m,up[M],q[M],*r=new int[M];
short int cif[M];
int cmmdc(int a,int b)
{
int r;
while(b)
{
r=a%b;
a=b;
b=r;
}
return a;
}
void drum(int x)
{
if(x!=1)
drum(up[x]);
printf("%hd",cif[x]);
}
int main()
{
freopen("multiplu.in","r",stdin);
freopen("multiplu.out","w",stdout);
scanf("%d%d",&a,&b);
m=a*b/cmmdc(a,b);
int k=1,dimq=0,x,y,i;
up[1]=1;
cif[1]=1;
q[++dimq]=1;
r[1]=1;
while(k<=dimq)
{
x=q[k++];
y=(x*10+0)%m;
if(!r[y])
{
cif[y]=0;
up[y]=x;
q[++dimq]=y;
r[y]=y;
}
if(y==0)
break;
y=(x*10+1)%m;
if(!r[y])
{
cif[y]=1;
up[y]=x;
q[++dimq]=y;
r[y]=y;
}
if(y==0)
break;
}
drum(0);
return 0;
}