Pagini recente » Cod sursa (job #2980234) | Cod sursa (job #478706) | Cod sursa (job #425157) | Cod sursa (job #24983) | Cod sursa (job #1097296)
#include<cstdio>
using namespace std;
bool viz[2000005];
struct queue
{
char c;
int r,pred;
};
queue q[2000005];
int cmmdc(int a,int b)
{
int r;
while(b)
{
r=a%b;
a=b;
b=r;
}
return a;
}
char sol[2000001];
int main()
{
freopen("multiplu.in","r",stdin);
freopen("multiplu.out","w",stdout);
int a,b,m,p,k,i,u,r;
queue temp;
scanf("%d%d",&a,&b);
m=a*b/cmmdc(a,b);
p=u=1;
q[p].c=1;
q[p].r=1;
q[p].pred=0;
viz[1]=1;
while(p<=u)
{
///incerc varianta cu 0
r=(q[p].r*10+0)%m;
if(viz[r]==0)
{
temp.c=0;
temp.r=r;
temp.pred=p;
q[++u]=temp;
viz[r]=1;
}
if(r==0)
{
k=0;
do
{
sol[++k]=q[u].c;
u=q[u].pred;
}
while(u!=0);
for(i=k;i>=1;i--)
printf("%d",sol[i]);
return 0;
}
///incerc varianta cu 1
r=(q[p].r*10+1)%m;
if(viz[r]==0)
{
temp.c=1;
temp.r=r;
temp.pred=p;
q[++u]=temp;
viz[r]=1;
}
if(r==0)
{
k=0;
do
{
sol[++k]=q[u].c;
u=q[u].pred;
}
while(u!=0);
for(i=k;i>=1;i--)
printf("%d",sol[i]);
return 0;
}
p++;
}
return 0;
}