Pagini recente » Cod sursa (job #1985134) | Cod sursa (job #2828097) | Cod sursa (job #2685221) | Cod sursa (job #361835) | Cod sursa (job #3189149)
#include <fstream>
#include <queue>
#include <bitset>
using namespace std;
ifstream fin ("multiplu.in");
ofstream fout ("multiplu.out");
int a,b,x,i,nrn,nr,ok;
queue <int> q;
bitset <2000001> viz;
pair <int,bool> t[2000001];
int cmmdc (int a,int b)
{
int r=0;
while (b!=0)
{
r=a%b;
a=b;
b=r;
}
return a;
}
void f (int nrn)
{
if (t[nrn].first==0)
fout<<1;
else
{
f (t[nrn].first);
fout<<t[nrn].second;
}
}
int main ()
{
fin>>a>>b;
x=a/cmmdc (a,b)*b;
if (x==1)
{
fout<<1;
return 0;
}
q.push (1);
viz[1]=1;
while (true)
{
nr=q.front ();
q.pop ();
for (i=0; i<=1; i++)
{
nrn=(nr*10+i)%x;
if (viz[nrn]==0)
{
viz[nrn]=1;
t[nrn]=make_pair (nr,i);
if (nrn==0)
{
ok=1;
break;
}
q.push (nrn);
}
}
if (ok==1)
break;
}
f (nrn);
return 0;
}