Pagini recente » Cod sursa (job #2671912) | Cod sursa (job #2422947) | Cod sursa (job #1136874) | Cod sursa (job #783712) | Cod sursa (job #1327432)
#include <fstream>
#include <queue>
using namespace std;
ifstream in("multiplu.in");
ofstream out("multiplu.out");
const int P = 2000001;
int a, b, m;
int c[P], v[P];
queue<int> q;
int cmmdc(int nr1, int nr2)
{
int r = nr1 % nr2;
while(r != 0)
{
nr1 = nr2;
nr2 = r;
r = nr1 % nr2;
}
return nr2;
}
void citire()
{
in >> a >> b;
}
int main()
{
citire();
m = a * b / cmmdc(a, b);
for(int i = 0; i < P; i++)
c[i] = -1;
q.push(1);
c[1] = 1;
bool ok = 1;
while(!q.empty() && ok == 1)
{
int x = q.front();
q.pop();
for(int i = 0; i <= 1; i++)
{
int y = x * 10 + i;
y %= m;
if(c[y] == -1)
{
c[y] = i;
v[y] = x;
q.push(y);
if(y == 0)
ok = 0;
}
}
}
int nr = 0, rez = 0;
while(1)
{
rez *= 10;
rez += c[nr];
nr = v[nr];
if(nr == 1)
{
rez *= 10;
rez += c[nr];
break;
}
}
out << rez << '\n';
return 0;
}