Cod sursa(job #251766)

Utilizator IoannaPandele Ioana Ioanna Data 3 februarie 2009 12:57:18
Problema Multiplu Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include<stdio.h>
typedef struct {int p,c;long r;}queue;
queue q[1000];
long a,b,m;
int sol[1000];


void read()
{
scanf("%ld%ld",&a,&b);
}

void cmmmc()
{
long long p;
long r;
p=a*b;
while (b)
      {
       r=a%b;
       a=b;
       b=r;
      }
m=p/a;
}

int lee()
{
int i;
long st,dr;
q[1].p=0;
q[1].c=1;
q[1].r=1%m;
st=dr=1;
while (st<=dr)
      {
       for (i=0;i<=1;i++)
           {
            q[++dr].p=st;
            q[dr].c=i;
            q[dr].r=(q[st].r*10+i)%m;
            if (q[dr].r==0)
                return dr;
           }
        st++;
      }
}

void numar(int k)
{
int pred;
pred=k;
while (pred)
      {
       sol[++sol[0]]=q[pred].c;
       pred=q[pred].p;
      }
}

void print()
{
int i;
for (i=sol[0];i>=1;i--)
    {
     printf("%d",sol[i]);
    }
printf("\n");
}

int main()
{
int k;
freopen("multiplu.in","r",stdin);
freopen("multiplu.out","w",stdout);
read();
cmmmc();
k=lee();
numar(k);
print();
return 0;
}