Cod sursa(job #3140232)

Utilizator sygAndreiIonitaIonita Andrei sygAndreiIonita Data 4 iulie 2023 20:48:06
Problema Multiplu Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <fstream>
#include <algorithm>
#include <numeric>
#include <queue>

using namespace std;
using ll=long long;

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

queue<int>q;
vector<int>minn(2e6+1,0);

void back(int a, int lowm) {
    if (a==1) {
        out<<1;
        return;
    }
    back(minn[a], lowm);
    if ((minn[a]*10)%lowm==a)
        out<<0;
    else 
        out<<1;
}

int main() {
    int a,b;
    in>>a>>b;
    int lowm = a*b/__gcd(a,b);
    q.push(1);
    minn[1]=1;
    while (!q.empty())
    {
        int t = q.front();
        q.pop();
        if (!minn[(t*10)%lowm])
            minn[(t*10)%lowm]=t,q.push((t*10)%lowm);
        if (!minn[(t*10+1)%lowm])
            minn[(t*10+1)%lowm]=t,q.push((t*10+1)%lowm);
    }
    back(0,lowm);
    return 0;
}