Pagini recente » Cod sursa (job #2836217) | Cod sursa (job #420061) | Cod sursa (job #1124774) | Cod sursa (job #2044893) | Cod sursa (job #1125912)
#include <fstream>
#include <queue>
using namespace std;
ifstream fin("multiplu.in");
ofstream fout("multiplu.out");
const int nmax= 2000000;
bool u[nmax+1];
int sol[nmax+1], prv[nmax+1], c[nmax+1];
queue <int> q;
inline int gcd( int x, int y ) {
if ( y==0 ) {
return x;
}
return gcd( y, x%y );
}
int main( ) {
int a, b, k= 0, m; fin>>a>>b;
m= a*b/gcd(a, b);
q.push(1);
prv[1]= c[1]= 1;
while ( !q.empty() ) {
int x= q.front();
q.pop();
for ( int i= 0; i<=1; ++i ) {
int y= (10*x+i)%m;
if ( u[y]==0 ) {
u[y]= 1, prv[y]= x, c[y]= i;
q.push(y);
}
}
}
for ( int i= 0; i!=1; i= prv[i] ) {
sol[++k]= c[i];
}
fout<<1;
for ( int i= k; i>=1; --i ) {
fout<<sol[i];
}
fout<<"\n";
return 0;
}