Cod sursa(job #413437)

Utilizator Robert29FMI Tilica Robert Robert29 Data 8 martie 2010 16:22:52
Problema Multiplu Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <stdio.h>
FILE*f=fopen("multiplu.in","r");
FILE*g=fopen("multiplu.out","w");
char viz[2000001],d[2000001],sol[2000001],ok;
int c[2000001],t[2000001],x,y,a,b,r,i,j,p,u;
int main() {
	fscanf(f,"%d%d",&x,&y);
	a=x;
	b=y;
	while(b==0){
		r=a%b;
		a=b;
		b=r;
	}	
	r=x*y/a;
	
	p=u=c[1]=d[1]=viz[1]=1;
	while(p<=u&&!ok){
		for(i=0;i<=1&&!ok;i++){
			x=(c[p]*10+i)%r;
			if(!viz[x]){
				u++;
				viz[x]=1;
				c[u]=x;
				t[u]=p;
				d[u]=i;
				if(x==0)
					ok=1;
			}
		}
		p++;
	}
	
	y=u;
	while(y) {
		sol[++j]=d[y];
		y=t[y];
	}
	
	for(i=j;i>=1;i--)
		fprintf(g,"%d",sol[i]);
	
	fclose(g);
	fclose(f);
	return 0;
}