Pagini recente » Cod sursa (job #564134) | Cod sursa (job #1485235) | Cod sursa (job #1576096) | Cod sursa (job #65083) | Cod sursa (job #2783957)
#include <fstream>
using namespace std;
ifstream fin("multiplu.in");
ofstream fout("multiplu.out");
bool v[2000005];
int aux[2000005], t[2000005];
int q[2000005], viz[2000005];
int cmmdc(int a, int b)
{
while (b)
{
int r = a % b;
a = b;
b = r;
}
return a;
}
void reconst(int p)
{
int k = 0;
while (p > 0)
{
aux[++k] = v[p];
p = t[p];
}
for (int i = k; i >= 1; i--)
fout << aux[i];
}
int main()
{
int a, b;
fin >> a >> b;
int x = a / cmmdc(a, b) * b;
int p, u, nr1, nr2;
p = u = 1;
viz[1] = 1;
q[p] = 1;
v[p] = 1;
while (p <= u)
{
nr1 = q[p];
for (int i = 0; i <= 1; i++)
{
nr2 = (nr1 * 10 + i) % x;
if (viz[nr2] == 0)
{
viz[nr2] = 1;
q[++u] = nr2;
t[u] = p;
v[u] = i;
if (nr2 == 0)
{
reconst(u);
return 0;
}
}
}
p++;
}
return 0;
}