Cod sursa(job #3263657)

Utilizator Mihai_OctMihai Octavian Mihai_Oct Data 15 decembrie 2024 20:49:07
Problema Multiplu Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("multiplu.in");
ofstream fout("multiplu.out");
bool fr[2000002];
queue<int> q;
int a, b, m;

static inline int Cmmdc(int a, int b) {
    if(b == 0) return a;
    return Cmmdc(b, a % b);
}

static inline int Cmmmc(int a, int b) {
    return a / Cmmdc(a, b) * b;
}

static inline void Recontruieste(int rest) {
    if(rest == 1) {
        fout << "\n";
        return;
    }

    int frCur = fr[rest];
    Recontruieste(frCur);

    if((frCur * 10) % m == rest) fout << "0";
    else fout << "1";
}

int main() {
    fin >> a >> b;
    m = Cmmmc(a, b);

    q.push(1);
    while(true) {
        int nr, cur = q.front();
        q.pop();

        if(cur == 0) break;

        nr = (cur * 10) % m;
        if(!fr[nr]) {
            fr[nr] = cur;
            q.push(nr);
        }

        nr = (cur * 10 + 1) % m;
        if(!fr[nr]) {
            fr[nr] = cur;
            q.push(nr);
        }
    }



    return 0;
}