Pagini recente » Cod sursa (job #463059) | Cod sursa (job #2062959) | Cod sursa (job #416222) | Cod sursa (job #578379) | Cod sursa (job #2265690)
#include <fstream>
#include <queue>
using namespace std;
ifstream fi("multiplu.in");
ofstream fo("multiplu.out");
const int MAX=2e6+5;
int a,b,lcm,pre[MAX],cif[MAX],nr;
queue <int> Q;
int gcd(int a,int b)
{
int r;
while(b)
{
r=a%b;
a=b;
b=r;
}
return a;
}
void afis(int rest)
{
if(rest==-1)
return;
afis(pre[rest]);
fo<<cif[rest];
}
int main()
{
fi>>a>>b;
lcm=a*b/gcd(a,b);
Q.push(1);
pre[1]=-1;
cif[1]=1;
while(pre[0]==0)
{
int rest=Q.front();
Q.pop();
nr=(rest*10)%lcm;
if(pre[nr]==0)
{
Q.push(nr);
pre[nr]=rest;
cif[nr]=0;
}
nr=(rest*10+1)%lcm;
if(pre[nr]==0)
{
Q.push(nr);
pre[nr]=rest;
cif[nr]=1;
}
}
afis(0);
fi.close();
fo.close();
return 0;
}