Cod sursa(job #521938)

Utilizator cnt_tstcont teste cnt_tst Data 13 ianuarie 2011 20:33:14
Problema Multiplu Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include<stdio.h>
FILE *f=fopen("multiplu.in", "r");
FILE *g=fopen("multiplu.out", "w");
int i,A,B,x,y,r,p,u,ok,cmmmc,k;
int q[2000010];
int T[2000010];
char v[2000010], c[2000010], nr[2000010];

int main () {
	fscanf (f, "%d %d", &A, &B);
	x=A;
	y=B;
	while (y!=0){
		r=x%y;
		x=y;
		y=r;
	}
	cmmmc = (A*B)/x;
	
	c[1]=1;
	v[1]=1;
	q[1]=1;
	p=1;
	u=1;
	
	while (p<=u && ok==0){
		for(i=0;i<=1;++i){
			x=(q[p]*10+i)%cmmmc;
			if (v[x]==0){
				v[x]=1;
				c[++u]=i;
				q[u]=x;
				T[u]=p;
				if (x==0){
					ok=1;
					break;
				}
			}
		}
		p++;
	}
	while (u!=0){
		nr[++k]=c[u];
		u=T[u];
	}
	for (i=k;i>=1;--i){
		fprintf(g, "%d", nr[i]);
	}
	fclose(f);
	fclose(g);
	return 0;
}