Pagini recente » Cod sursa (job #391625) | Cod sursa (job #359376) | Cod sursa (job #2878992) | Cod sursa (job #419794) | Cod sursa (job #3357129)
#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;
}