Pagini recente » Cod sursa (job #792500) | Cod sursa (job #2712889) | Cod sursa (job #1347326) | Cod sursa (job #2779057) | Cod sursa (job #1817509)
#include <fstream>
const int M=(1<<22);
using namespace std;
ifstream f ("multiplu.in");
ofstream g ("multiplu.out");
int a,b,m,pred[M],q[M],ult[M];
int cmmdc(int a,int b)
{
int r;
while(b)
{
r=a%b;
a=b;
b=r;
}
return a;
}
void mul()
{
int p=1,u=0,x,y,i;
pred[1]=1;
ult[1]=1;
q[++u]=1;
while(p<=u)
{
x=q[p++];
for(i=0;i<2;++i)
{
y=(x*10+i)%m;
if(!pred[y])
{
ult[y]=i;
pred[y]=x;
q[++u]=y;
}
if(y==0)
return;
}
}
}
void car(int x)
{
if(x!=1) car(pred[x]);
g<<ult[x];
}
int main()
{
f>>a>>b;
m=a*b/cmmdc(a,b);
mul();
car(0);
return 0;
}