Pagini recente » Cod sursa (job #651755) | Cod sursa (job #122264) | Cod sursa (job #1833313) | Cod sursa (job #2495373) | Cod sursa (job #2322046)
#include <fstream>
#include <queue>
using namespace std;
ifstream cin("multiplu.in");
ofstream cout("multiplu.out");
struct chestie{
int val[50010],r;
}mp,mp0,mp1,v;
int A,B,C,sol[50010],bif[2000010];
queue <chestie> q;
int cmmmc(int x,int y);
void becky();
int main()
{
cin>>A>>B;
C=cmmmc(A,B);
v.val[0]=v.val[1]=1;
v.r=1;
q.push(v);
becky();
for(int i=1;i<=sol[0];i++)
cout<<sol[i];
cout<<'\n';
return 0;
}
void becky()
{
if(!q.empty())
{
mp=q.front();
q.pop();
if(mp.r==0)
{
for(int i=mp.val[0];i>=0;i--)
sol[i]=mp.val[i];
bif[0]=0;
return;
}
else{
mp1.r=(mp.r*10+1)%C;
mp0.r=(mp.r*10)%C;
if(!bif[mp1.r])
{
mp1.val[0]=mp.val[0]+1;
for(int i=1;i<mp1.val[0];i++)
mp1.val[i]=mp.val[i];
mp1.val[mp1.val[0]]=1;bif[mp1.r]=1;
q.push(mp1);
}
if(!bif[mp0.r])
{
mp0.val[0]=mp.val[0]+1;
for(int i=1;i<mp0.val[0];i++)
mp0.val[i]=mp.val[i];
mp0.val[mp0.val[0]]=0;bif[mp0.r]=1;
q.push(mp0);
}
becky();
}
}
}
int cmmmc(int x,int y)
{
int r=x%y,p=x*y;
while(r)
{
x=y;
y=r;
r=x%y;
}
return p/y;
}