Pagini recente » Diferente pentru utilizator/luijika_programatorul intre reviziile 7 si 6 | Monitorul de evaluare | Cod sursa (job #1900768) | Cod sursa (job #1867301) | Cod sursa (job #148517)
Cod sursa(job #148517)
#include<fstream.h>
#define max 2000000
int mod[max], bk[max], a, b, m;
char nx[max];
ifstream f("multiplu.in");
ofstream g("multiplu.out");
int cmmdc(int a, int b);
void solve();
void write(int n);
int main()
{ f>>a>>b;
m=cmmdc(a, b);
m=a/m*b;
solve();
return 0;
}
int cmmdc(int a, int b)
{ if(a==0)
return b;
if(b==0)
return a;
if(a>b)
return cmmdc(a%b, b);
else
return cmmdc(a, b%a);
}
void solve()
{ int p, u, i, md;
p=0; u=0;
mod[0]=1; bk[1]=-1; nx[1]=1;
while(p<=u)
{ for(i=0; i<=1; i++)
{ md=(mod[p]*10+i)%m;
if(bk[md]==0)
{ u++;
mod[u]=md;
bk[md]=mod[p];
nx[md]=i;
if(bk[0]!=0)
{ write(0);
g<<'\n';
g.close();
return;
}
}
}
p++;
}
}
void write(int n)
{ if(bk[n]>0)
write(bk[n]);
g<<(int)nx[n];
}