Pagini recente » Cod sursa (job #151923) | Cod sursa (job #2959887) | Cod sursa (job #2583893) | Cod sursa (job #2685460) | Cod sursa (job #1459320)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("multiplu.in");
ofstream out("multiplu.out");
const int NMax = 2000000;
bool f[NMax];
int m,a,b,i,p,u;
struct coada{
bool c;
int r,pred;
};
coada q[NMax];
bool sol[NMax];
int cmmdc(int a,int b){
int r;
while(b){
r=a%b;
a = b;
b = r;
}
return a;
}
int main()
{
int r1,r0,j;
in>>a>>b;
m = (a*b)/cmmdc(a,b);
p=u=1;
q[u].c=1;
q[u].r=1;
q[u].pred=0;
f[1]=1;
if(a*b==1)
out<<1<<'\n';
else
{
while(p<=u){
r0 = (q[p].r*10+0)%m;
if(f[r0]==0){
f[r0]=1;
u++;
q[u].c=0;
q[u].r=r0;
q[u].pred=p;
if(r0==0)
break;
}
r1 = (q[p].r*10+1)%m;
if(f[r1]==0){
f[r1]=1;
u++;
q[u].c=1;
q[u].r=r1;
q[u].pred=p;
if(r1==0)
break;
}
p++;
}
i=1;
while(q[u].pred!=0){
sol[i] = q[u].c;
u=q[u].pred;
i++;
}
sol[i]=1;
for(j=i;j>=1;j--)
out<<sol[j];
}
return 0;
}