Pagini recente » Cod sursa (job #2410599) | Cod sursa (job #2394058) | Cod sursa (job #937411) | Cod sursa (job #432559) | Cod sursa (job #1022762)
#include <fstream>
#include <queue>
#define In "multiplu.in"
#define Out "multiplu.out"
#define Nmax 2000000
using namespace std;
queue < int > Q;
bool viz[Nmax], A[Nmax];
int Last[Nmax] ;
ofstream g(Out);
inline void Write(const int x)
{
if(x==1)
{
g<<"1";
return ;
}
Write(Last[x]);
g<<A[x];
}
int main()
{
int x , a, b, m, r, i ,j;
ifstream f(In);
f>>a>>b;
x = a *b;
f.close();
while(b)
{
r = a % b;
a = b;
b = r;
}
m = x/a;
viz[1%m] = 0;
for(Q.push(1%m); !viz[0] ; Q.pop())
{
i = Q.front();
j = i*10%m;
if(!viz[j])
Q.push(j),
Last[j] = i,
A[j] = 0,
viz[j] = 1;
j = (i*10+1)%m;
if(!viz[j])
Last[j] = i,
Q.push(j),
A[j] = 1,
viz[j] = 1;
}
Write(0);
g<<"\n";
g.close();
return 0;
}