Cod sursa(job #522175)

Utilizator zaha94Zaharia Mihai zaha94 Data 14 ianuarie 2011 14:44:15
Problema Multiplu Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include<fstream.h>
#include<string.h>

int r[2000000],c[2000000],t[2000000];
char viz[2000000],S[2000000];
int i,j,a,b,m,u,p,ok,q;
int main(){
	fstream f("multiplu.in");
	ofstream g("multiplu.out");
	f>>a>>b;
	m=a*b;
	while(b){
		q=a%b;
		a=b;
		b=q;
	}
	m=m/a;
	p=u=1;
	c[1]=1;
	r[1]=1;
	ok=1;
	viz[1]=1;
	while(ok){
		for(i=0;i<=1;i++)
			if(viz[(r[p]*10+i)%m]==0){
				u++;
				r[u]=(r[p]*10+i)%m;
				viz[r[u]]=1;
				c[u]=i;
				t[u]=p;
				if(r[u]==0){
					ok=0;
					break;
				}
			}
			p++;
	}
	i=0;
	while(u){
		S[i++]=c[u]+'0';
		u=t[u];
	}
	for (i--;i>=0;i--)
		g<<S[i];
	f.close();
	g.close();
	return 0;
}