Pagini recente » Cod sursa (job #1067372) | Cod sursa (job #733897) | Cod sursa (job #2282025) | Cod sursa (job #270545) | Cod sursa (job #2943852)
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream fin("multiplu.in");
ofstream fout("multiplu.out");
queue<int>q;
int pred[10000];
vector<bool>sol;
int cmmmc(int a, int b)
{
int p = a*b;
while(b > 0)
{
int r = a % b;
a = b;
b = r;
}
return p/a;
}
int main()
{
int a, b;
fin >> a >> b;
int mc = cmmmc(a, b);
q.push(1%mc);
int rasp = 0;
while(!q.empty())
{
int restAnt = q.front();
q.pop();
int r0 = (restAnt*10) % mc;
int r1 = (restAnt*10+1) % mc;
if(pred[r0] == 0)
pred[r0] = restAnt;
if(pred[r1] == 0)
pred[r1] = restAnt;
if(r0 == 0)
{
rasp = r0;
break;
}
if(r1 == 0)
{
rasp = r1;
break;
}
q.push(r0);
q.push(r1);
}
while(pred[rasp] != 0)
{
int ant = pred[rasp];
if((ant*10)%mc == rasp)
sol.push_back(0);
else
sol.push_back(1);
rasp = ant;
}
sol.push_back(1%mc);
for(int i = sol.size()-1; i >= 0; i--)
fout << sol[i];
return 0;
}