Cod sursa(job #3139781)

Utilizator DumitrescuADumitrescuA DumitrescuA Data 1 iulie 2023 16:53:40
Problema Multiplu Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.03 kb
#include <fstream>
#include <vector>
#include <queue>
#include <algorithm>
using namespace std;

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

bool frv[2000000],frv1[2000000];
int frv2[2000000];

vector <bool> rasp;

int main()
{
    int a,b,x,i;
    cin>>a>>b;
    x=a*b/__gcd(a,b);
    queue<int> s;
    s.push(1);
    frv[1]=frv1[1]=1;frv2[1]=-1;
    while(frv[0]==0){
        a=s.front();
        s.pop();
        if(frv[(a*10)%x]==0){
            frv[(a*10)%x]=1;frv1[(a*10)%x]=0;
            s.push((a*10)%x);
            frv2[(a*10)%x]=a;
        }
        if(frv[(a*10+1)%x]==0){
            frv[(a*10+1)%x]=1;frv1[(a*10+1)%x]=1;
            s.push((a*10+1)%x);
            frv2[(a*10+1)%x]=a;
        }
    }///printf("a");
    rasp.push_back(frv1[0]);
    i=frv2[0];
    while(i!=-1){
       // printf(" [%d ",i);
        rasp.push_back(frv1[i]);
        i=frv2[i];
    }
    reverse(rasp.begin(),rasp.end());
    for(i=0;i<rasp.size();i++)
        cout<<rasp[i];
    return 0;
}