Cod sursa(job #118715)

Utilizator pandaemonAndrei Popescu pandaemon Data 27 decembrie 2007 17:24:18
Problema Multiplu Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include<stdio.h>
#include<iostream.h>
#define LMAX 200000

long a,b; long long m;
int v[LMAX],cif[LMAX]; long ult[LMAX];

void init()
{scanf("%ld %ld",&a,&b);
 if(a>b) m=a;
 else m=b;
 long var=m;
 while(m%b!=0 || m%a!=0) m+=var;
 v[1]=1; ult[1]=0; cif[1]=1;}

long afisare(long poz)
{if(poz!=0) {afisare(ult[poz]); printf("%d",cif[poz]);} }

main()
{freopen("multiplu.in","r",stdin);
 freopen("multiplu.out","w",stdout);

 init();

 long start=1,end=1;

 while(start<=end)
 {if((v[start]*10)%m==0) {afisare(start); printf("0\n"); break;}
  else {v[++end]=(v[start]*10)%m; cif[end]=0; ult[end]=start;}

  if((v[start]*10+1)%m==0) {afisare(start); printf("1\n"); break;}
  else {v[++end]=(v[start]*10+1)%m; cif[end]=1; ult[end]=start;}
  start++;}
}