Cod sursa(job #3356692)

Utilizator gabriel47291Vaduva Gabriel - Teodor gabriel47291 Data 3 iunie 2026 10:48:07
Problema Multiplu Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.11 kb
#include <fstream>
#define DIM 2000001

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

long long a, b, m, aux, ok;

long long cmmdc (long long a, long long b) {
    if (b == 0)
    {
        return a;
    }
    else
    {
        return cmmdc(b, a%b);
    }
}

int viz[DIM], c[DIM]; /// a*b <= 2000000 deci m <=2000000 deci resturile % m sunt intre 0 si 1999999
int parent[DIM], last[DIM];

void sol (int u)
{
    if (u!=0)
    {
        sol(parent[u]);
        fout<<last[u];
    }
}

int main () {

    fin>>a>>b;
    m = a/cmmdc(a,b)*b;
    c[1] = 1;
    last[1] = 1;
    parent[1] = 0;
    viz[1] = 1;
    int p = 1;
    int u = 1;
    while (p <= u)
    {
        for (int i=0; i<=1; i++)
        {
            int next = (c[p]*10 + i) % m;
            if (viz[next] == 0)
            {
                u ++;
                c[u] = next;
                viz[next] = 1;
                last[u] = i;
                parent[u] = p;
                if (next == 0)
                {
                    sol(u);
                    return 0;
                }
            }
        }
        p++;
    }
}