Cod sursa(job #2953098)

Utilizator Robert_MitriRobert Mitri Robert_Mitri Data 10 decembrie 2022 14:25:01
Problema Multiplu Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <fstream>

using namespace std;
ifstream fin("multiplu.in");
ofstream fout("multiplu.out");


int cmmdc(int a,int b)
{
    while(b!=0)
    {
        int r = a%b;
        a=b;
        b=r;
    }
    return a;
}

int q[1000000];
int p;
int u;

int t[1000000];
bool c[1000000];
bool viz[1000000];

void reconst(int poz)
{
    if(poz!=0)
    {
        reconst(t[poz]);
        fout<<c[poz];
    }

}


int main()
{
    int a,b;
    fin>>a>>b;
    int cmm = a/cmmdc(a,b)*b;
    p=1;
    u=1;
    q[1]=1;
    c[1]=1;
    bool ok= true;
    while(p<=u && ok)
    {
        int x = q[p];
        for(int i=0;i<=1;i++)
        {
            int l = (x*10+i)%cmm;
            if(viz[l]==0){
                q[++u]=l;
                viz[l]=1;
                c[u]=i;
                t[u]=p;
                if(l==0)
                {
                    ok=false;
                    break;
                }
            }
        }
        p++;

    }
    reconst(u);



}