Cod sursa(job #3361127)

Utilizator medeeavasile56@gmail.comVasile Medeea [email protected] Data 20 iulie 2026 17:00:00
Problema Multiplu Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.26 kb
#include <fstream>
#include <cstring>
#include <vector>
#include <queue>
using namespace std;
ifstream cin("multiplu.in");
ofstream cout("multiplu.out");
queue<int> q;
int cmmmc(int a,int b)
{
    int cmmdc,r,ca=a,cb=b;
    while(b!=0){
        r=a%b;
        a=b;
        b=r;
    } cmmdc=a;
    return ca*cb/cmmdc;
}
int main()
{
    int a,m,b,x;
    cin>>a>>b;
    x=cmmmc(a,b);
    vector<int> parent(x,-1);
    vector<int> digits(x);
    vector<bool> viz(x,false);
    vector<char> c;
    int start=1%x;
    q.push(start);
    viz[start]=true;
    digits[start]=1;
    while(!q.empty())
    {
        int r=q.front(); q.pop();
        if(r==0)
            break;
        int r0=(r*10)%x;
        if(!viz[r0])
        {
            viz[r0]=true;
            parent[r0]=r;
            digits[r0]=0;
            q.push(r0);
        }
        int r1=(r*10+1)%x;
        if(!viz[r1])
        {
            viz[r1]=true;
            parent[r1]=r;
            digits[r1]=1;
            q.push(r1);
        }
    }
    int r=0,sz=0;
    while(parent[r]!=-1)
    {
        char ch=digits[r]+'0';
        c.push_back(ch);
        r=parent[r];
    } c.push_back('1');
   for(int i=c.size()-1;i>=0;i--) cout<<c[i];
    return 0;
}