Pagini recente » Cod sursa (job #2605237) | Cod sursa (job #2930256) | Cod sursa (job #3210527) | Cod sursa (job #2179032) | Cod sursa (job #2311668)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("multiplu.in");
ofstream out("multiplu.out");
const int NMAX = 1 << 22;
int a, b;
int m;
int ant[1 + NMAX];
int st[1 + NMAX];
int lst[1 + NMAX];
int cmmdc(int a, int b) {
int r;
while(b != 0) {
r = a % b;
a = b;
b = r;
}
return a;
}
void solve() {
int le = 1;
int ri = 1;
ant[1] = 1;
lst[1] = 1;
st[ri] = 1;
while(le <= ri) {
int x = st[le];
le++;
for(int i = 0; i < 2; i++) {
int y = (x * 10 + i) % m;
if(ant[y] == 0) {
ant[y] = x;
lst[y] = i;
st[++ri] = y;
}
if(y == 0)
return;
}
}
}
void write(int pos) {
if(pos != 1)
write(ant[pos]);
out << lst[pos];
}
int main()
{
in >> a >> b;
m = (a * b) / cmmdc(a, b);
//cout << m << '\n';
solve();
write(0);
out << '\n';
in.close();
out.close();
return 0;
}