Cod sursa(job #1417608)

Utilizator alexandra_udristoiuUdristoiu Alexandra Maria alexandra_udristoiu Data 10 aprilie 2015 17:27:13
Problema Multiplu Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.03 kb
#include<fstream>
#define DIM 2000002
using namespace std;
int a, b, r, x, y, m, M, p, u;
int c[DIM], f[DIM], cif[DIM], t[DIM];
ifstream fin("multiplu.in");
ofstream fout("multiplu.out");
int main(){
    fin>> a >> b;
    x = a;
    y = b;
    while(y != 0){
        r = x % y;
        x = y;
        y = r;
    }
    m = a * b / x;
    p = u = 1;
    c[1] = 1;
    cif[1] = 1;
    while(p <= u){
        if(f[c[p] * 10 % m] == 0){
            f[c[p] * 10 % m] = 1;
            u++;
            c[u] = c[p] * 10 % m;
            cif[u] = 0;
            t[u] = p;
            if(c[u] == 0){
                break;
            }
        }
        if(f[(c[p] * 10 + 1) % m] == 0){
            f[(c[p] * 10 + 1) % m] = 1;
            u++;
            c[u] = (c[p] * 10 + 1) % m;
            cif[u] = 1;
            t[u] = p;
            if(c[u] == 0){
                break;
            }
        }
        p++;
    }
    p = u;
    while(p != 0){
        fout<< cif[p];
        p = t[p];
    }
    return 0;
}