Cod sursa(job #994349)

Utilizator TibixbAndrei Tiberiu Tibixb Data 5 septembrie 2013 12:43:02
Problema Multiplu Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include<fstream>
using namespace std;
int t[2000002], a, x, b, y, m, r, i, c[2000002], p, u, k, sol[2000002], cif[2000002], v[2000002];
FILE *fin=fopen("multiplu.in","r");
ofstream fout("multiplu.out");
int main(){
	fscanf(fin, "%d%d", &a, &b);
	x=a; y=b;
	while(y!=0){
		r=x%y;
		x=y;
		y=r;
	}
	m=(a/x)*b;
	c[1]=1;
	v[1]=1;
	p=1; u=1;
	cif[1] = 1;
	while(p<=u && v[0]==0){
		for(i=0; i<=1; i++){
			r=(c[p]*10+i)%m;
			if(v[r]==0){
				c[++u]=r;
				v[r]=1;
				t[u]=p;
				cif[u]=i;
				if(r==0)
					break;
			}
		}
		p++;
	}
	while(u!=0){
		sol[++k]=cif[u];
		u=t[u];
		
	}
	for(i=k; i>=1; i--)
		fout<<sol[i];
	fout<<"\n";
return 0;
}