Cod sursa(job #462669)

Utilizator deneoAdrian Craciun deneo Data 12 iunie 2010 16:28:31
Problema Multiplu Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include<fstream>
#define DIM 2000003
using namespace std;
long m, v[DIM], c[DIM], cif[DIM], t[DIM];

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;
	cif[1]=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;
				}
			}
		}
		p++;
	}
	g.close();
	return 0;
}