Cod sursa(job #574950)

Utilizator SmarandaMaria Pandele Smaranda Data 7 aprilie 2011 18:38:47
Problema Multiplu Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include<stdio.h>
struct MULTIPLU
{
	long c,ra,rb,pred;
};
MULTIPLU q[1000001];
long numar[1000001];
int main()
{
	long a,b,p,u,i;
	
	freopen("multiplu.in","r",stdin);
	freopen("multiplu.out","w",stdout);
	
	scanf("%ld%ld",&a,&b);
	q[1].c=q[1].ra=q[1].rb=1;
	q[1].pred=0;
	p=u=1;
	while (1)
	{
		q[++u].c=1;
		q[u].pred=p;
		q[u].ra=(q[p].ra*10+1)%a;
		q[u].rb=(q[p].rb*10+1)%b;
		if (q[u].ra==0 && q[u].rb==0)
			break;
		q[++u].c=0;
		q[u].pred=p;
		q[u].ra=(q[p].ra*10)%a;
		q[u].rb=(q[p].rb*10)%b;
		if (q[u].ra==0 && q[u].rb==0)
			break;
		p++;
	}
	i=u;
	numar[++numar[0]]=q[i].c;
	i=q[i].pred;
	while (i)
	{
			numar[++numar[0]]=q[i].c;
			i=q[i].pred;
	}
	for (i=numar[0];i>=1;i--)
		printf("%ld",numar[i]);
	return 0;
}