Pagini recente » Cod sursa (job #1799521) | Cod sursa (job #2285122) | Cod sursa (job #2875676) | Cod sursa (job #1824750) | Cod sursa (job #245808)
Cod sursa(job #245808)
#include <stdio.h>
#include <vector>
using namespace std;
struct queue
{
int r, p;
char c;
};
int A, B, LCM;
queue q [2000005];
vector <bool> v (2000005);
int GCD (int A, int B)
{
int r;
while (B)
{
r=A%B;
A=B;
B=r;
}
return A;
}
int BFS ()
{
int f, l, c, rest;
f=l=1;
q [1].r=1;
q [1].p=0;
q [1].c='1';
while (f <= l)
{
for (c=0; c <= 1; ++c)
{
rest=(q [f].r*10+c)%LCM;
if (v [rest] == false)
{
v [rest]=true;
q [++l].r=rest;
q [l].p=f;
q [l].c=c+'0';
if (rest == 0)
return l;
}
}
++f;
}
return 0;
}
void print (int p)
{
if (q [p].p)
print (q [p].p);
printf ("%c", q [p].c);
}
int main ()
{
freopen ("multiplu.in", "r", stdin);
freopen ("multiplu.out", "w", stdout);
scanf ("%d%d", &A, &B);
LCM=A*B/GCD (A, B);
if (LCM == 1)
printf ("1");
else
print (BFS ());
printf ("\n");
return 0;
}