Pagini recente » Profil ganezuu | Cod sursa (job #1420176) | Profil M@2Te4i | Cod sursa (job #1243798) | Cod sursa (job #1962343)
#include<cstdio>
#include<bitset>
using namespace std;
bitset <2000000>f;
const int NMAX=2000000;
struct multiplu
{
int c,r,t;
};
multiplu q[NMAX+5];
int main()
{
freopen("multiplu.in","r",stdin);
freopen("multiplu.out","w",stdout);
int A,B,M,CA,CB,r,p,u,i;
scanf("%d%d",&A,&B);
CA=A;
CB=B;
while(B)
{
r=A%B;
A=B;
B=r;
}
M=CA/A*CB;
p=u=1;
q[p].c=1;
q[p].c=1;
q[p].r=1;
q[p].t=0;
f[q[p].r]=1;
while(p<=u)
{
r=(q[p].r*10+0)%M;
if(f[r]==0)
{
f[r]=1;
u++;
q[u].c=0;
q[u].r=r;
q[u].t=p;
if(r==0)
break;
}
r=(q[p].r*10+1)%M;
if(f[r]==0)
{
f[r]=1;
u++;
q[u].c=1;
q[u].r=r;
q[u].t=p;
if(r==0)
break;
}
++p;
}
i=0;
while(u>=1)
{
f[++i]=q[u].c;
u=q[u].t;
}
for(i;i>=1;i--)
if(f[i]==0)
printf("0");
else
printf("1");
return 0;
}