Cod sursa(job #413438)

Utilizator mihaipopa12Popa Mihai mihaipopa12 Data 8 martie 2010 16:27:55
Problema Multiplu Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include<stdio.h>
#define dim 2000001
FILE*f=fopen("multiplu.in","r");
FILE*g=fopen("multiplu.out","w");
int A,B,a,b,r,p,u,k,i,ok,x,ec;
char viz[dim],cif[dim],sol[dim];
int t[dim],c[dim],s;
int main () {
	fscanf(f,"%d%d",&A,&B);
	a=A; b=B;
	while(b!=0){
		r=a%b;
		a=b;
		b=r;
	}
	x=(A/a)*B;
	viz[1]=1;
	c[1]=1;
	p=u=1;
	cif[1]=1;
	t[1]=0;
	while(p<=u&&ok==0){
		for(i=0;i<=1;i++){
			r=(c[p]*10+i)%x;
			if(viz[r]==0){
				u++;
				c[u]=r;
				viz[r]=1;
				t[u]=p;
				cif[u]=i;
				if(r==0){
					ok=1;
					break;
				}
			}
		}
		p++;
	}
	s=u;
	while(s!=0){
		sol[++k]=cif[s];
		s=t[s];
	}
	for(i=k;i>=1;i--)
		fprintf(g,"%d",sol[i]);
	
	fclose(f);
	fclose(g);
	return 0;
}