Pagini recente » Cod sursa (job #2296263) | Cod sursa (job #3194558) | Cod sursa (job #1529866) | Cod sursa (job #24289) | Cod sursa (job #2490743)
#include <bits/stdc++.h>
using namespace std;
ifstream f ("multiplu.in");
ofstream g ("multiplu.out");
int a , b;
bitset < 2000050 > mark;
queue < vector < short > > c;
vector < short > d;
map < vector < short > , int > rest;
int cmmdc(int a , int b)
{
int r;
while(b)
{
r = a % b;
a = b;
b = r;
}
return a;
}
void Print_Answer(vector < short > a)
{
for(int i = 1 ; i <= a[0] ; i++)
g << a[i];
exit(0);
}
int main()
{
f >> a >> b;
int m = a * b / cmmdc(a , b) , r , crest;
mark[1] = 1;
d.push_back(1);
d.push_back(1);
c.push(d);
rest[d] = 1;
while(!c.empty())
{
d = c.front();
c.pop();
crest = rest[d];
++d[0];
d.push_back(0);
r = crest * 10 % m;
rest[d] = r;
if(r == 0)
Print_Answer(d);
if(!mark[r])
c.push(d) , mark[r] = 1;
d[d[0]] = 1;
r = crest * 10 + 1;
r %= m;
rest[d] = r;
if(r == 0)
Print_Answer(d);
if(!mark[r])
c.push(d) , mark[r] = 1;
}
return 0;
}