Pagini recente » Cod sursa (job #358019) | Cod sursa (job #2531728) | Cod sursa (job #2351569) | Cod sursa (job #996626) | Cod sursa (job #1878139)
#include <iostream>
#include <fstream>
#include <queue>
using namespace std;
ifstream fin("multiplu.in");
ofstream fout("multiplu.out");
long long a,b,ca,cb,cmmmc,S[2000005],prev[2000005],ok,r,Sum;
queue <int> q;
string rsp;
int main()
{
fin>>a>>b;
ca=a;cb=b;
r=a%b;
while(r!=0)
{
a=b;
b=r;
r=a%b;
}
cmmmc=ca*cb/b;
q.push(1);
prev[1]=1;
S[1]=-1;
while(ok==0)
{
Sum=q.front();
if(S[(Sum*10+1)%cmmmc]==0)
{
q.push((Sum*10+1)%cmmmc);
S[(Sum*10+1)%cmmmc]=Sum;
prev[(Sum*10+1)%cmmmc]=1;
if((Sum*10+1)%cmmmc==0)
ok=1;
}
if(S[(Sum*10)%cmmmc]==0)
{
q.push((Sum*10)%cmmmc);
S[(Sum*10)%cmmmc]=Sum;
prev[(Sum*10)%cmmmc]=0;
if((Sum*10)%cmmmc==0)
ok=1;
}
q.pop();
}
Sum=0;
while(Sum!=-1)
{
rsp+=(char)(prev[Sum]+'0');
Sum=S[Sum];
}
for(int i=rsp.size()-1;i>=0;i--)
fout<<rsp[i];
return 0;
}