Cod sursa(job #873048)

Utilizator avramavram andrei marius avram Data 6 februarie 2013 20:46:51
Problema Multiplu Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include<stdio.h>
int T[100000],X[100000],a,b,p,u,c[100000],M;
int cmmdc(int a,int b)
{
	int r;
	while(b)
	{
		r=a%b;
		a=b;
		b=r;
	}
	return a;
}
void drum(int u)
{
	if(u!=0)
	{
		drum(T[u]);
		printf("%d",X[u]);
	}
}
int main()
{
	freopen("multiplu.in","r",stdin);
	freopen("multiplu.out","w",stdout);
	scanf("%d%d",&a,&b);
	M=a*b/cmmdc(a,b);
	c[1]=1;
	X[1]=1;
	T[1]=0;
	p=u=1;
	while(p<=u)
	{
		c[++u]=c[p]*10;
		c[u]=c[u]%M;
		X[u]=0;
		T[u]=p;
		if(c[u]==0)
		{
			drum(u);
			break;
		}
		c[++u]=(c[p]*10+1)%M;
		X[u]=1;
		T[u]=p;
		if(c[u]==0)
		{
			drum(u);
			break;
		}
		p++;
	}
	return 0;
}