Pagini recente » Cod sursa (job #3140958) | Cod sursa (job #283456) | Cod sursa (job #3328891) | Cod sursa (job #3343008) | Cod sursa (job #3356692)
#include <fstream>
#define DIM 2000001
using namespace std;
ifstream fin ("multiplu.in");
ofstream fout("multiplu.out");
long long a, b, m, aux, ok;
long long cmmdc (long long a, long long b) {
if (b == 0)
{
return a;
}
else
{
return cmmdc(b, a%b);
}
}
int viz[DIM], c[DIM]; /// a*b <= 2000000 deci m <=2000000 deci resturile % m sunt intre 0 si 1999999
int parent[DIM], last[DIM];
void sol (int u)
{
if (u!=0)
{
sol(parent[u]);
fout<<last[u];
}
}
int main () {
fin>>a>>b;
m = a/cmmdc(a,b)*b;
c[1] = 1;
last[1] = 1;
parent[1] = 0;
viz[1] = 1;
int p = 1;
int u = 1;
while (p <= u)
{
for (int i=0; i<=1; i++)
{
int next = (c[p]*10 + i) % m;
if (viz[next] == 0)
{
u ++;
c[u] = next;
viz[next] = 1;
last[u] = i;
parent[u] = p;
if (next == 0)
{
sol(u);
return 0;
}
}
}
p++;
}
}