Cod sursa(job #632874)

Utilizator zloteanu.adrianzloteanu adrian nichita zloteanu.adrian Data 12 noiembrie 2011 14:51:30
Problema Multiplu Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include<fstream>
using namespace std;
int cur,last,x,y,i,r,a,b,m,prev[2000001],q[2000001],ult[2000001];
ifstream fin("multiplu.in");
ofstream w("multiplu.out");
void afis(int x)
{
    if(x!=1)
        afis(prev[x]);
    w<<ult[x];
}
int main()
{
    fin>>a>>b;
    m=a*b;
    while(b)
    {
        r=a%b;
        a=b;
        b=r;
    }
    m=m/a;
    cur=1;
    prev[1]=ult[1]=q[++last]=1;
    while(cur<=last)
    {
        x=q[cur++];
        for(i=0 ; i<2 ; ++i)
        {
            y=(x*10+i)%m;
            if(!prev[y])
            {
                ult[y]=i;
                prev[y]=x;
                q[++last]=y;
            }
            if(y==0)
            {
                afis(0);
                return 0;

            }
        }
    }
    afis(0);
    return 0;
}