Pagini recente » Cod sursa (job #2703663) | Cod sursa (job #1234734) | Cod sursa (job #2628645) | Cod sursa (job #1710291) | Cod sursa (job #2146044)
#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(true){
int n = q.front();
q.pop();
int val = n * 10 % a;
if(l[val] == 0){
pre[val] = n;
l[val] = l[n];
if(val == 0)
break;
q.push(val);
}
val = (n * 10 + 1) % a;
if(l[val] == 0){
pre[val] = n;
l[val] = l[n] + 1;
if(val == 0)
break;
q.push(val);
}
}
explore(0);
return 0;
}