Cod sursa(job #1568329)

Utilizator CraiuAndrei Craiu Craiu Data 14 ianuarie 2016 09:11:21
Problema Multiplu Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.2 kb
#include <bits/stdc++.h>

using namespace std;

int a, b;
int r[2500000];
int p[2500000];

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

int cmmmc(int a, int b)
{
    int c;
    c = cmmdc(a, b);
    return a / c * b;
}

void Afisare(int dr)
{
    string sol = "";
    while(dr > 0)
    {
        if(dr % 2 == 0)
            sol = "0" + sol;
        else sol = "1" + sol;
        dr = p[dr];
    }
    ofstream fout("multiplu.out");
    fout << sol << "\n";
    fout.close();
}

void Rezolva()
{
    int C, x;
    int st, dr;
    C = cmmmc(a, b);
    r[1] = 1;
    st = 1;
    dr = 1;
    while(1)
    {
        x = r[st];
        st++;
        x *= 10;
        r[++dr] = x % C;
        p[dr] = st - 1;
        if(r[dr] == 0)
        {
            Afisare(dr);
            return;
        }
        x++;
        r[++dr] = x % C;
        p[dr] = st - 1;
        if(r[dr] == 0)
        {
            Afisare(dr);
            return;
        }
    }
}

int main()
{
    ifstream fin("multiplu.in");
    fin >> a >> b;
    fin.close();
    Rezolva();
    return 0;
}