Pagini recente » Cod sursa (job #654580) | Cod sursa (job #1057380) | Cod sursa (job #3171679) | Cod sursa (job #1483133) | Cod sursa (job #2146040)
#include <iostream>
#include <fstream>
#include <queue>
using namespace std;
ifstream in ("multiplu.in");
ofstream out ("multiplu.out");
int const nmax = 2000000;
int l[5 + nmax];
int pre[5 + nmax];
queue<int> q;
int a , b;
void explore(int n){
if(n == 1){
out<<1;
} else{
explore(pre[n]);
if((pre[n] * 10 + 1) % a == n){
out<<1;
} else
out<<0;
}
}
int main()
{
in>>a>>b;
int pr = a * b;
while(0 < b){
int temp = a;
a = b;
b = temp % b;
}
a = pr / a;
q.push(1);
l[1] = 1;
while(0 < q.size()){
int n = q.front();
q.pop();
if(l[(n * 10) % a] == 0){
pre[n * 10 % a] = n;
l[n * 10 % a] = l[n];
q.push(n * 10 % a);
}
if(l[(n * 10 + 1) % a] == 0){
pre[(n * 10 + 1) % a] = n;
l[(n * 10 + 1) % a] = l[n] + 1;
q.push((n * 10 + 1) % a);
}
}
explore(0);
return 0;
}