Cod sursa(job #3357129)

Utilizator Vlad_lupuvlad lupu Vlad_lupu Data 6 iunie 2026 15:45:06
Problema Multiplu Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.13 kb
#include <fstream>
#include <queue>
using namespace std;

int prv[2000001];
int cif[2000001];
int dr[2000001];
ifstream cin("multiplu.in");
ofstream cout("multiplu.out");

int main()
{
    long long a,b;
    cin>>a>>b;

    long long cmmmc=a/__gcd(a,b)*b;

    for(int i=0;i<cmmmc;i++){
        prv[i]=-1;
        cif[i]=-1;
    }

    queue<long long> q;
    long long st=1%cmmmc;
    prv[st]=cmmmc;
    cif[st]=1;
    if(st==0){
        cout<<1;
        return 0;
    }
    q.push(st);

    int ok=0;
    while(q.size()>0&&ok==0){
        long long cur=q.front();
        q.pop();
        for(int d=0;d<=1;d++){
            long long urm=(cur*10+d)%cmmmc;
            if(prv[urm]==-1){
                prv[urm]=cur;
                cif[urm]=d;
                if(urm==0){
                    ok=1;
                }
                else{
                    q.push(urm);
                }
            }
        }
    }

    int l=0;
    long long cur=0;
    while(cur!=cmmmc){
        dr[l++]=cif[cur];
        cur=prv[cur];
    }
    for(int i=l-1;i>=0;i--)
        cout<<dr[i];
    return 0;
}