Pagini recente » Cod sursa (job #2747415) | Cod sursa (job #1948141) | Cod sursa (job #1373331) | Cod sursa (job #1054524) | Cod sursa (job #2714303)
#include <fstream>
#include <queue>
using namespace std;
queue <int> q;
const int N = 2000001;
int m,pred[N],ultim[N],t;
ifstream in("multiplu.in");
ofstream out("multiplu.out");
void afisare(int o)
{
if(o == -1)
{
return;
}
afisare(pred[o]);
out << ultim[o];
}
void bfs()
{
q.push(1);
pred[1] = -1;
ultim[1] = 1;
while(!q.empty())
{
int x = q.front();
q.pop();
for(int i=0; i < 2; i++)
{
int y = (x * 10 + i) % m;
if(pred[y] == 0)
{
ultim[y] = i;
pred[y] = x;
if(y == 0)
{
return;
}
q.push(y);
}
}
}
}
int main()
{
int a,b;
in >> a >> b;
int z = a*b;
while(a != b)
{
if(a > b)
{
a -= b;
}
else
{
b -= a;
}
}
m = z/a;
bfs();
afisare(0);
return 0;
}