Cod sursa(job #1570151)

Utilizator Mircea_DonciuDonciu Mircea Mircea_Donciu Data 16 ianuarie 2016 11:13:33
Problema Multiplu Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include <fstream>

using namespace std;
int a,b,c,d,r,i,nr,q[2000005],pr[2000005];
bool viz[2000005],p[2000005],h[30];
int main()
{
    ifstream f("multiplu.in");
    ofstream g("multiplu.out");
    f>>a>>b;
    c=a;
    d=b;
    while(d)
    {
        r=c%d;
        c=d;
        d=r;
    }
    a=a*b/c;
    q[1]=1;
    p[1]=1;
    i=1;
    d=1;
    while(nr==0)
    {
        if(viz[(q[i]*10)%a]==0)
        {
            viz[(q[i]*10)%a]=1;
            d++;
            q[d]=(q[i]*10)%a;
            if(q[d]==0) nr=d;
            pr[d]=i;
            p[d]=0;
        }
        if(viz[(q[i]*10+1)%a]==0)
        {
            viz[(q[i]*10+1)%a]=1;
            d++;
            q[d]=(q[i]*10+1)%a;
            if(q[d]==0) nr=d;
            pr[d]=i;
            p[d]=1;
        }
        i++;
    }
    c=0;
    while(nr)
    {
        c++;
        h[c]=p[nr];
        nr=pr[nr];
    }
    for(i=c; i>=1; i--)
        g<<h[i];
    g<<'\n';
    f.close(); g.close();
}