Pagini recente » Cod sursa (job #2183856) | Cod sursa (job #1604943) | Istoria paginii runda/listare_agm_2017 | Profil Adriana_S | Cod sursa (job #1878175)
#include <iostream>
#include <fstream>
#include <queue>
using namespace std;
ifstream fin("multiplu.in");
ofstream fout("multiplu.out");
int S[2000005],cif[2000005],a,b,cmmmc,ok,r,Sum;
queue <int> q;
string rsp;
int recursiv(int a,int b)
{
cout<<a<<" "<<b<<endl;
if(a%b==0)
return b;
else if(b%a==0)
return a;
else if(a>b)
return recursiv(a-a/b*b,b);
else if(b>a)
return recursiv(a,b-b/a*a);
}
int main()
{
fin>>a>>b;
cmmmc=a*b/recursiv(a,b);
cout<<cmmmc<<endl;
q.push(1);
cif[1]=1;
S[1]=-1;
while(!q.empty())
{
Sum=q.front();
if(S[(Sum*10)%cmmmc]==0)
{
q.push((Sum*10)%cmmmc);
S[(Sum*10)%cmmmc]=Sum;
cif[(Sum*10)%cmmmc]=0;
if((Sum*10)%cmmmc==0)
break;
}
if(S[(Sum*10+1)%cmmmc]==0)
{
q.push((Sum*10+1)%cmmmc);
S[(Sum*10+1)%cmmmc]=Sum;
cif[(Sum*10+1)%cmmmc]=1;
if((Sum*10+1)%cmmmc==0)
break;
}
q.pop();
}
Sum=0;
while(Sum!=-1)
{
rsp+=(char)(cif[Sum]+'0');
Sum=S[Sum];
}
for(int i=rsp.size()-1;i>=0;i--)
fout<<rsp[i];
return 0;
}