Pagini recente » Cod sursa (job #1607619) | Cod sursa (job #107617) | Cod sursa (job #1430344) | Cod sursa (job #63084) | Cod sursa (job #2146799)
#include <fstream>
#include <queue>
using namespace std;
ifstream cin ("multiplu.in");
ofstream cout ("multiplu.out");
const int MAX_N = 2000001;
int a, b, c;
int r, top, nr;
int m;
bool last[MAX_N], v[MAX_N];
int lastr[MAX_N];
queue <int> Q;
int main() {
cin >> a >> b;
c = a;
a *= b;
while(b > 0) {
r = c % b;
c = b;
b = r;
}
a /= c;
Q.push(1);
last[1] = 1;
while(!Q.empty()) {
top = Q.front();
Q.pop();
if(lastr[top * 10 % a] == 0) {
nr = top * 10 % a;
Q.push(nr);
last[nr] = 0;
lastr[nr] = top;
if(nr == 0)
break;
}
if(lastr[(top * 10 + 1) % a] == 0) {
nr = (top * 10 + 1) % a;
Q.push(nr);
last[nr] = 1;
lastr[nr] = top;
if(nr == 0)
break;
}
}
v[++m] = last[0];
top = lastr[0];
while(top) {
v[++m] = last[top];
top = lastr[top];
}
for(int i = m; i >= 1; i--)
cout << v[i];
return 0;
}