Cod sursa(job #1414715)

Utilizator antanaAntonia Boca antana Data 2 aprilie 2015 22:16:15
Problema Multiplu Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.1 kb
#include <iostream>
#include<cstdio>
using namespace std;
int v[31];
int cmmmc(int a, int b)
{
    int r, cmmdc=a, ca=a, cb=b;
    while(b)
    {
        r=cmmdc%b;
        cmmdc=b;
        b=r;
    }
    return ca*cb/cmmdc;
}
struct c{int cif, rest, poz;};
c coada[2000001];
int main()
{
    freopen("multiplu.in","r",stdin);
    freopen("multiplu.out","w",stdout);
    int gasit=0,a,b,x, pozi,ic,sf,j,i;
    scanf("%d%d", &a, &b);
    x=cmmmc(a,b);
    coada[1].cif=1;
    coada[1].rest=1;
    coada[1].poz=0;
    ic=1;
    sf=1;
    while(gasit==0)
    {
        for(i=0;i<=1;i++)
        {
            sf++;
            coada[sf].cif=i;
            coada[sf].poz=ic;
            coada[sf].rest=(coada[ic].rest*10+i)%x;
            if(coada[sf].rest==0)
            {
                gasit=1;
                pozi=sf;
            }
        }
        ic++;
    }
    i=pozi;
    j=0;
    while(coada[i].poz!=0)
    {
        v[++j]=coada[i].cif;
        i=coada[i].poz;
    }
    v[++j]=coada[i].cif;
    for(i=j;i>=1;i--)
        printf("%d", v[i]);
    return 0;
}