Cod sursa(job #147090)
| Utilizator | Data | 2 martie 2008 16:29:32 | |
|---|---|---|---|
| Problema | Multiplu | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 1.31 kb |
#include<stdio.h>
#define nmax 2000000
int coada[nmax],pred[nmax];
char urm[nmax];
void scrie(int inc)
{
if(pred[inc]>0)
scrie(pred[inc]);
printf("%d",urm[inc]);
}
int cmmdc( int a,int b)
{
int r=a%b;
while(r){
a=b;
b=r;
r=a%b;
}
return b;
}
int main()
{
freopen("multiplu.in","r",stdin);
freopen("multiplu.out","w",stdout);
int a,b,p,u,aux;
scanf("%d%d",&a,&b);
int m=(a*b)/cmmdc(a,b);
coada[0]=1;
pred[1]=-1;
urm[1]=1;
p=0;u=0;
while(p<=u)
{
for(int i=0;i<2;++i){
aux=(coada[p]*10+i)%m;
if(!pred[aux]){
pred[aux]=coada[p];
urm[aux]=i;
coada[++u]=aux;
if(pred[0]){
scrie(0);
printf("\n");
return 0;
}
}
}
++p;
}
// */
return 0;
}
