Pagini recente » Ciorna | Cod sursa (job #1781057) | Cod sursa (job #2076028) | Cod sursa (job #2748629) | Cod sursa (job #3225830)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("multiplu.in");
ofstream fout("multiplu.out");
int q[2000005], pr, ul;
int pred[2000005];
char c[2000005];
bitset<2000005> fr;
string sol;
int main()
{
int a, b, x;
fin >> a >> b;
x = a / __gcd(a, b) * b;
pr = 1;
ul = 0;
q[++ul] = 1;
fr[1] = 1;
c[1] = '1';
while(fr[0] == 0)
{
a = q[pr++];
b = a * 10 % x;
if(fr[b] == 0)
{
fr[b] = 1;
q[++ul] = b;
c[ul] = '0';
pred[ul] = pr - 1;
}
if(b == 0)
break;
b = (b + 1) % x;
if(fr[b] == 0)
{
fr[b] = 1;
q[++ul] = b;
c[ul] = '1';
pred[ul] = pr - 1;
}
}
while(ul > 0)
{
sol += c[ul];
ul = pred[ul];
}
reverse(sol.begin(), sol.end());
fout << sol << "\n";
fout.close();
return 0;
}