Pagini recente » Cod sursa (job #998795) | Cod sursa (job #2505262) | Cod sursa (job #575978) | Cod sursa (job #2063211) | Cod sursa (job #2627692)
#include <fstream>
#include <algorithm>
#include <queue>
#include <cstdio>
using namespace std;
ifstream cin("multiplu.in");
ofstream cout("multiplu.out");
int a,b,m,t,viz[2000005],ans,pred[2000005],v[2000005],ultim[2000005];
queue <int> q;
int main()
{
cin>>a>>b;
m=a/__gcd(a,b)*b;
if(m==0){
cout<<0;
return 0;
}
if(m==1){
cout<<1;
return 0;
}
else{
viz[1%m]=1;
}
q.push(1);
pred[1%m]=-1;
int val1,val2;
while(!q.empty()){
t=q.front();
q.pop();
val1 = (t*10)%m;
if(viz[val1]==0){
viz[val1]=1;
pred[val1]=t;
ultim[val1]=0;
if(val1==0){
ans=val1;
break;
}
else{
q.push(val1);
}
}
val2 = (t*10+1)%m ;
if(viz[val2]==0){
viz[val2]=1;
pred[val2]=t;
ultim[val2]=1;
if(val2==0){
ans=val2;
break;
}
else{
q.push(val2);
}
}
}
int k=0;
while(pred[ans]!=-1){
v[++k]=ultim[ans];
ans=pred[ans];
}
cout<<1;
for(int i=k;i>0;i--){
cout<<v[i];
}
return 0;
}