Pagini recente » Cod sursa (job #499065) | Cod sursa (job #931809) | Cod sursa (job #1339025) | Cod sursa (job #1473875) | Cod sursa (job #408197)
Cod sursa(job #408197)
#include <fstream>
using namespace std;
ifstream f("multiplu.in");
ofstream g("multiplu.out");
#define nmax 1<<21
int A,B,M;
int Q[nmax],k,pre[nmax];
bool t[nmax],viz[nmax];
#define Q (Q-1)
int cmmdc(int x,int y)
{
if(y==0)
return x;
return cmmdc(y,x%y);
}
void scrie(int n)
{
if(n==0)
return;
scrie(pre[n]);
g<<t[n];
}
void coada()
{
int i,x;
Q[++k]=1;
t[k]=1;
for(i=1;i<=k;i++)
{
x=Q[i];
x*=10;
x%=M;
if(!viz[x])
{
viz[x]=true;
Q[++k]=x;
pre[k]=i;
t[k]=0;
if(x==0)
{
scrie(k);
return;
}
}
x++;
x%=M;
if(!viz[x])
{
viz[x]=true;
Q[++k]=x;
pre[k]=i;
t[k]=1;
if(x==0)
{
scrie(k);
return;
}
}
}
}
int main()
{
f>>A>>B;
f.close();
M=A*B/cmmdc(A,B);
coada();
return 0;
}