Pagini recente » Cod sursa (job #2238749) | Cod sursa (job #1377791) | Cod sursa (job #218114) | Cod sursa (job #22564) | Cod sursa (job #484034)
Cod sursa(job #484034)
#include<fstream>
#include<iostream>
#define maxn 2000005
using namespace std;
int c[maxn], viz[maxn], tata[maxn], x, y;
ofstream g("multiplu.out");
void afisare(int nod){
if (nod == 1)
g<<1;
else {
int t = tata[nod];
afisare(t);
int r = (t*(10%x))%x;
if (r == nod)
g<<0;
else
g<<1;
}
}
int main(){
ifstream f("multiplu.in");
int a, b;
f>>a>>b;
x = a, y = b;
while (x != y){
if (x < y)
x = x+a;
else
y = y+b;
}
int p = 1, u = 1;
c[p] = 1;
viz[1] = 1;
int r1, r2;
while (true){
y = c[p];
p++;
r1 = (y*(10%x))%x;
r2 = (y*(10%x)+1)%x;
if (viz[r1] == 0){
tata[r1] = y;
viz[r1] = 1;
u++;
c[u] = r1;
}
if (viz[r2] == 0){
tata[r2] = y;
viz[r2] = 1;
u++;
c[u] = r2;
}
if (r1 == 0 || r2 == 0)
break;
}
if (r1 == 0)
afisare(r1);
else
afisare(r2);
return 0;
}