Cod sursa(job #278202)

Utilizator EllsolanMircea Iordache Ellsolan Data 12 martie 2009 10:08:26
Problema Multiplu Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include <fstream>
using namespace std;

 int a,b,m,i,j,v[20000],ret[20000],x[20000],c;
 ifstream in ("multiplu.in");
 ofstream out ("multiplu.out");


 int gcd(int a, int b)
{
    if (!b) return a;
    return gcd(b, a%b);
}

int write(int a)
{
    if (ret[a]>=0)
    write(ret[a]);
    out<<v[a];
}

int main()
{


    in>>a>>b;
    m=(a*b)/gcd(a,b);
    for (i=0;i<m;i++)
    v[i]=-1;
    i=j=0;
    x[0]=1;
    v[1]=1;
    ret[1]=-1;
    while (i<=j)
    {
        c=x[i]*10%m;
        if (v[c]==-1)
        {
            v[c]=0;
            ret[c]=v[i];
            v[++j]=c;
            if (!c)
            {
                write(0);
                return 0;
            }
        }
        c=x[i]*10%m;
        if (v[c]==-1)
        {
            v[c]=0;
            ret[c]=v[i];
            v[++j]=c;
            if (!c)
            {
                write(0);
                return 0;
            }
        }
        i++;
    }
    return 0;
}