Cod sursa(job #134869)

Utilizator katakunaCazacu Alexandru katakuna Data 12 februarie 2008 15:41:40
Problema Multiplu Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include<stdio.h>
int p,u,c[2000100],i,dr[2000100],a,b,r,m;
char sol[2000100],viz[2000100],dr2[2000100];

int main(){

FILE *f=fopen("multiplu.in","r");
FILE *g=fopen("multiplu.out","w");
fscanf(f,"%d %d",&a,&b);
fclose(f);

int a1=a;
int b1=b;
  while(b!=0){
  r=a%b;
  a=b;
  b=r;
  }

m=a1*b1/a;

p=1;
u=1;
c[1]=1;
dr2[1]=1;

int ok=1;

  while(p<=u&&ok){

    for(i=0;i<=1&&ok;i++){
     if(viz[(c[p]*10+i)%m]==0){
     u++;
     c[u]=(c[p]*10+i)%m;
     dr[u]=p;
     dr2[u]=i;
     viz[(c[p]*10+i)%m]=1;
     if(c[u]==0)ok=0;

     }
    }

  p++;
  }

i=0;
while(u!=0){
i++;
sol[i]=dr2[u];
u=dr[u];
}

 for(p=i;p>=1;p--){
 fprintf(g,"%d",sol[p]);
 }

fclose(g);


return 0;
}