Cod sursa(job #1782030)

Utilizator mariusn01Marius Nicoli mariusn01 Data 17 octombrie 2016 18:47:27
Problema Multiplu Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <fstream>
#define DIM 2000010
using namespace std;

ifstream fin ("multiplu.in");
ofstream fout("multiplu.out");

int c[DIM], cf[DIM], t[DIM], v[DIM];
int a, b, p, u, m, rc, r;

int cmmdc(int a, int b) {
    if (b == 0)
        return a;
    else
        return cmmdc(b, a%b);
}

void drum(int u) {
    if (u!=0) {
        drum(t[u]);
        fout<<cf[u];
    }
}



int main () {

    fin>>a>>b;
    p = a*b;

    m = p / cmmdc(a, b);

    for (c[1] = 1, p = 1, u = 1, v[1] = 1, cf[1] = 1; p<=u; p++){
        rc = c[p];
        for (int i=0;i<=1;i++) {
            r = (rc * 10 + i) % m;
            if (v[r] == 0) {
                u++;
                c[u] = r;
                v[r] = 1;
                t[u] = p;
                cf[u] = i;
                if (r == 0) {
                    drum(u);
                }
            }
        }
    }

    return 0;
}