Pagini recente » Cod sursa (job #2269138) | Cod sursa (job #2568796) | Borderou de evaluare (job #1567686) | Cod sursa (job #2659851) | Cod sursa (job #2264264)
#include <fstream>
#include <algorithm>
#include <queue>
using namespace std;
ifstream fin ("multiplu.in");
ofstream fout("multiplu.out");
int a, b, M;
int S[10000002],G[10000002];
bool v[10000002];
queue<int> Q;
void afis(int x){
if(G[x])
{
afis(G[x]);
fout << S[x];
}
else
fout << 1;
}
int main()
{
fin>>a>>b;
M=(a*b)/__gcd(a,b);
Q.push(1);
v[1]=1;
S[1]=1;
G[1]=0;
while(!Q.empty())
{
int x=Q.front();
Q.pop();
if(x==0)
{
afis(0);
break;
}
int mod1 = (x*10)%M;
if(!v[mod1])
{
v[mod1]=true;
Q.push(mod1);
G[mod1]=x;
S[mod1]=0;
}
int mod2=(x*10+1)%M;
if(!v[mod2])
{
v[mod2]=true;
Q.push(mod2);
G[mod2]=x;
S[mod2]=1;
}
}
return 0;
}