Cod sursa(job #2846276)

Utilizator AndreiBOTOBotocan Andrei AndreiBOTO Data 9 februarie 2022 07:29:14
Problema Multiplu Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.03 kb
#include <iostream>
#include <fstream>
#include <algorithm>

using namespace std;

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

const int NMAX=2e6+5;
bool ok[NMAX];
int nr[NMAX];
int q[NMAX];
int final[NMAX];

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

void af (int kon)
{
    if(kon!=0)
    {
        af(final[kon]);
        fout<<nr[kon];
    }
}

int main()
{
    int a,b,r,x=1,p=1,i,j,alt,kon=0;
    fin>>a>>b;
    r=a*b/cmmdc(a,b);
    nr[1]=1;
    q[1]=1;
    ok[1]=false;
    while(p<=x)
    {
        for(i=0;i<2;i++)
        {
            alt=q[p]*10+i;
            alt=alt%r;
            if(ok[alt]==0)
            {
                ok[alt]=1;
                nr[++x]=i;
                final[x]=p;
                q[x]=alt;
            }
            if(alt==0)
            {
                af(x);
                return 0;
            }
        }
        p++;
    }
    return 0;
}