Cod sursa(job #147090)

Utilizator alexeiIacob Radu alexei Data 2 martie 2008 16:29:32
Problema Multiplu Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.31 kb
#include<stdio.h>
#define nmax 2000000
int coada[nmax],pred[nmax];
char urm[nmax];

void scrie(int inc)
{
	if(pred[inc]>0)
		scrie(pred[inc]);   
	printf("%d",urm[inc]);
}

int cmmdc( int a,int b)
{
    int r=a%b;
    while(r){
            a=b;
            b=r;
            r=a%b;
    }
    
     return b;
}


int main()
{
    freopen("multiplu.in","r",stdin);
    freopen("multiplu.out","w",stdout);
    int a,b,p,u,aux;
    scanf("%d%d",&a,&b);
    int m=(a*b)/cmmdc(a,b); 
    coada[0]=1;
    pred[1]=-1;
    urm[1]=1;   
    p=0;u=0;
    while(p<=u)
    {
                for(int i=0;i<2;++i){
                       aux=(coada[p]*10+i)%m;
                       if(!pred[aux]){
                                        pred[aux]=coada[p];
                                        urm[aux]=i;
                                        coada[++u]=aux;
                                        if(pred[0]){
                                                    scrie(0);
                                                    printf("\n");
                                                    return 0;
                                                    }
                       }
				}
                
				++p;       
    
               
               
    }    
 //   */
    return 0;
}