Cod sursa(job #3338560)

Utilizator PopRadGabPopescu Radu Gabriel PopRadGab Data 3 februarie 2026 21:49:16
Problema Multiplu Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.2 kb
#include <bits/stdc++.h>
using namespace std;

#define ll long long
const int DIM=2000005;

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

inline void atribuire_scalar(ll A[],ll x){
    A[0]=0;
    if(x==0){
        A[0]=1;
        A[1]=0;
    }
    else{
        while(x){
            A[++A[0]]=x%10;
            x/=10;
        }
    }
}

inline bool binar(ll A[]){
    for(int i=1;i<=A[0];i++)
        if(A[i]!=0 && A[i]!=1)
            return false;
    return true;
}

inline void impartire(ll A[],ll x,ll C[],ll &r){
    r=0;
    C[0]=A[0];
    for(int i=A[0];i>=1;i--){
        ll cur=10*r+A[i];
        C[i]=cur/x;
        r=cur%x;
    }
    while(C[0]>1&&C[C[0]]==0)
        C[0]--;
}

int main(){
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    ll a,b;
    fin>>a>>b;

    static ll M[DIM],M1[DIM],M2[DIM],C1[DIM],C2[DIM];
    ll r1,r2;

    for(ll i=1;;i++){
        atribuire_scalar(M1,i);
        atribuire_scalar(M2,i);

        impartire(M1,a,C1,r1);
        impartire(M2,b,C2,r2);

        if(r1==0 && r2==0 && binar(M1)){
            for(int j=0;j<=M1[0];j++)
                M[j]=M1[j];
            break;
        }
    }

    for(int i=M[0];i>=1;i--)
        fout<<M[i];

    return 0;
}