Pagini recente » Cod sursa (job #1836845) | Cod sursa (job #141505) | Cod sursa (job #20026) | Monitorul de evaluare | Cod sursa (job #1878401)
#include <iostream>
#include <fstream>
#include <vector>
#define pb push_back
using namespace std;
ifstream in("multiplu.in");
ofstream out("multiplu.out");
int a,b,c,x,y,d;
vector <int> v[50],ad[50];
int pozi,pozj,sem,l,sir[40],k;
long long nr;
int main()
{
in>>a>>b;
x=a,y=b;
while(b)
{
c=a%b;
a=b;
b=c;
}
d=x*y/a;
v[1].pb(1);
ad[1].pb(1);
sem=1;
pozi=1;
while(sem)
{
++pozi;
l=0;
for(int i=0;i<v[pozi-1].size() && sem==1;++i)
{
l+=2;
nr=v[pozi-1][i]*10;
v[pozi].pb((nr+1)%d);
v[pozi].pb(nr%d);
ad[pozi].pb(1);
ad[pozi].pb(0);
if(v[pozi][l-1]==0)
{
sem=0;
pozj=l-1;
}
if(v[pozi][l-2]==0)
{
sem=0;
pozj=l-2;
}
}
}
sir[0]=pozi;
while(pozi)
{
cout<<pozj<<endl;
sir[++k]=ad[pozi][pozj];
pozj/=2;
--pozi;
}
for(int i=sir[0];i>0;--i)out<<sir[i];
return 0;
}