Cod sursa(job #134864)

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

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;
     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;
}