Nu aveti permisiuni pentru a descarca fisierul grader_test10.in
Cod sursa(job #926466)
Utilizator | Data | 25 martie 2013 11:09:37 | |
---|---|---|---|
Problema | Multiplu | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 1.16 kb |
#include<stdio.h>
struct TYPE { int c,r,t; };
int A,B;
TYPE aux,q[2000010];
char res[2000010];
bool f[2000010];
int cm ()
{
int cA,cB,cmmdc,r;
cA=A; cB=B;
while(B)
{
r=A%B;
A=B;
B=r;
}
cmmdc=A;
A=cA; B=cB;
return A*B/cmmdc;
}
int main()
{
int c,u,p,CM,i,n;
freopen("multiplu.in","r",stdin);
freopen("multiplu.out","w",stdout);
p=u=1;
scanf("%d%d",&A,&B);
CM=cm();
aux.c=1; aux.r=(aux.c)%CM; aux.t=0;
q[p]=aux;
while(p<=u)
{
if(q[p].r==0)
break;
for(c=0;c<2;c++)
{
aux.c=c;
aux.r=(q[p].r*10+c)%CM;
aux.t=p;
if(!f[aux.r])
{
f[aux.r]=1;
q[++u]=aux;
}
}
p++;
}
c=0;
while(p)
{
res[++c]=q[p].c;
p=q[p].t;
}
for(i=c;i>=1;i--)
printf("%d",res[i]);
printf("\n");
return 0;
}