Cod sursa(job #2783962)

Utilizator biancalautaruBianca Lautaru biancalautaru Data 15 octombrie 2021 13:36:20
Problema Multiplu Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <fstream>
#define DIM 2000005
using namespace std;
ifstream fin("multiplu.in");
ofstream fout("multiplu.out");
int a,b,nr,p,u,x,y,i,q[DIM],t[DIM];
bool f[DIM],v[DIM];

int cmmdc(int x,int y) {
    while (y!=0) {
        int r=x%y;
        x=y;
        y=r;
    }
    return x;
}

void reconst(int p) {
    if (p>0) {
        reconst(t[p]);
        fout<<v[p];
    }
}

int main() {
    fin>>a>>b;
    nr=a/cmmdc(a,b)*b;
    p=u=1;
    f[1]=1;
    q[p]=1;
    v[p]=1;
    while (p<=u) {
        x=q[p];
        for (i=0;i<=1;i++) {
            y=(x*10+i)%nr;
            if (f[y]==0) {
                f[y]=1;
                q[++u]=y;
                t[u]=p;
                v[u]=i;
                if (y==0) {
                    reconst(u);
                    return 0;
                }
            }
        }
        p++;
    }
    return 0;
}