Cod sursa(job #522174)

Utilizator Tucu94Andrei Tuculanu Tucu94 Data 14 ianuarie 2011 14:41:08
Problema Multiplu Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include<fstream.h>
#include<string.h>
# define DIM 2000001
char viz[DIM],s[DIM];
int A,B,M,c;
int p,u,ok,i;
int r[DIM],C[DIM],t[DIM];

ifstream f ("multiplu.in");
ofstream g ("multiplu.out"); 
int main (){

f>>A>>B;
M=A*B;
while (B){
c=A%B;
A=B;
B=c;
}
M/=A;

p=u=1;
r[1]=1;
viz[1]=1;
ok=1;
C[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];
















return 0;
}