Cod sursa(job #875479)

Utilizator avramavram andrei marius avram Data 10 februarie 2013 11:17:36
Problema Multiplu Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include<stdio.h>
int a,b,p,u,M, aux, i;
char X[2000666];
int T[2000666];
int c[2000666];
char v[2000666];
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;
	v[1] = 1;
    p=u=1;
	int stop = 0;
    while(p<=u)
    {
		for (i=0;i<=1;i++) {
			aux = (c[p]*10 + i) % M;
			if (v[aux] == 0) {
				c[++u] = aux;
				v[aux] = 1;
				X[u] = i;
				T[u] = p;
				if(c[u]==0)
				{
					drum(u);
					stop = 1;
					break;
				}

			}
		}
		
        p++;
    }
    return 0;
}