Cod sursa(job #462651)

Utilizator tudgal1001Profir Tudor tudgal1001 Data 12 iunie 2010 15:41:28
Problema Multiplu Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include<cstdio>
#define NMax 2000000
using namespace std;

int c[NMax],v[NMax],cif[NMax],t[NMax];
int cmmmc (int x,int y)
{
	int c,prod=x*y;
	while (y)
	{
		c=x%y;
		x=y;
		y=c;
	}
	return prod/x;
}

void drum(int u) {
	if (u) {
		drum(t[u]);
		printf("%d",cif[u]);
	}
}

int main ()
{
	int a,b,nr,p,u,i,ceva;
	freopen("multiplu.in","r",stdin);
	freopen("multiplu.out","w",stdout);
	scanf("%d%d",&a,&b);
	ceva=cmmmc(a,b);
	p=u=1;
	c[1]=1; v[1]=1;cif[1] = 1;
	while (p<=u)
	{
		for (i=0; i<=1; i++)
		{
			nr=(10*c[p]+i)%ceva;
			if (v[nr]==0)
			{
				c[++u]=nr;
				v[nr]=1;
				cif[u]=i;
				t[u]=p;
				
				if (nr==0) {
					drum(u);
					p = u+1;
					i=2;
				}
				
			}
			
		}
		p++;
	}
	
	return 0;
}