Pagini recente » Cod sursa (job #2199132) | Cod sursa (job #2308910) | Cod sursa (job #3036458) | Cod sursa (job #2411689) | Cod sursa (job #2627690)
#include <fstream>
#include <algorithm>
#include <queue>
using namespace std;
ifstream cin("multiplu.in");
ofstream cout("multiplu.out");
int a,b,m,t,viz[2000005],ans,pred[2000005],v[2000005];
queue <int> q;
int main()
{
cin>>a>>b;
m=a*b/__gcd(a,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;
while(!q.empty()){
t=q.front();
q.pop();
if(viz[(t*10)%m]==0){
viz[(t*10)%m]=1;
pred[t*10%m]=t;
if((t*10)%m==0){
ans=t*10%m;
break;
}
else{
q.push((t*10)%m);
}
}
if(viz[(t*10+1)%m]==0){
viz[(t*10+1)%m]=1;
pred[(t*10+1)%m]=t;
if((t*10+1)%m==0){
ans=(t*10+1)%m;
break;
}
else{
q.push((t*10+1)%m);
}
}
}
int k=0;
while(pred[ans]!=-1){
v[++k]=ans;
ans=pred[ans];
}
for(int i=k;i>0;i--){
cout<<v[k];
}
return 0;
}