Cod sursa(job #462650)

Utilizator deneoAdrian Craciun deneo Data 12 iunie 2010 15:38:03
Problema Multiplu Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include<fstream>
using namespace std;
long m, v[2000000], c[2000000], cif[2000000], t[2000000];

ifstream f("multiplu.in");
ofstream g("multiplu.out");
	
	
long cmmdc(long a, long b)
{
	long aux;
	while(b)
	{
		aux=a%b; a=b; b=aux;
	}
	return a;
}
	
void afiseaza (int u) {
	
	if (u>0) {
		afiseaza(t[u]);
		g<<cif[u]<<" ";
	}
	
}
int main()
{
	long a, b, vec, p, u, i;
	f>>a>>b;
	m=a*b/cmmdc(a, b);
	c[1]=v[1]=1; p=u=1;
	while(p<=u)
	{
		for(i=0; i<=1; ++i)
		{
			vec=(10*c[p]+i)%m;
			if(v[vec]==0)
			{
				c[u++]=vec;
				v[vec]=1;
				cif[u]=i;
				t[u]=p;
				if(vec==0) 
				{
					
					afiseaza(u);
					p = u+1;
					break;
				}
			}
		}
	}
	g.close();
	return 0;
}