Pagini recente » Cod sursa (job #2406785) | Cod sursa (job #237586) | Cod sursa (job #1893507) | Cod sursa (job #1338295) | Cod sursa (job #2668061)
#include <bits/stdc++.h>
#define nmax 2000002
using namespace std;
ifstream f("multiplu.in");
ofstream g("multiplu.out");
int a,b,ok,nr1,nr2,x;
int v1[nmax],q[nmax],frecv[nmax];
stack <int> st;
bitset <nmax> marker;
void solve(int y)
{
int r=(x*10+y)%a;
if(r==0)
{
ok=1;
q[++nr2]=r;
v1[nr2]=nr1;
marker[nr2]=y;
}
else
{
if(frecv[r]==0)
{
q[++nr2]=r;
v1[nr2]=nr1;
marker[nr2]=y;
frecv[r]=1;
}
}
}
int main()
{
f>>a>>b;
a=a*b/__gcd(a,b);
nr1=nr2=ok=0;
q[nr1]=frecv[1]=marker[0]=1;
while(ok==0)
{
x=q[nr1];
solve(0);
solve(1);
nr1++;
}
while(nr2)
{
st.push((int)marker[nr2]);
nr2=v1[nr2];
}
g<<"1";
while(!st.empty())
{
g<<st.top();
st.pop();
}
return 0;
}