Cod sursa(job #2953111)

Utilizator MrPuzzleDespa Fabian Stefan MrPuzzle Data 10 decembrie 2022 14:39:21
Problema Multiplu Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.22 kb
#include<fstream>
#include<iostream>
#include<climits>
#include<algorithm>
#include<cstring>
#include<cmath>
#include <vector>
#include <queue>
#include <deque>

#define DIM 2000000

using namespace std;

ifstream f("multiplu.in");
ofstream g("multiplu.out");

//ifstream f("in.in");
//ofstream g("out.out");

int n,a,b,MOD;
int p,u,q[DIM+5];
bool rest[DIM+5];
bool cif[DIM+5];
int t[DIM+5];

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

void rec(int x){

    //cout<<x<<'\n';

    if(x != 1){
        rec(t[x]);
    }

    g<<cif[x];
}

int main(){

    f>>a>>b;
    MOD = a/cmmdc(a,b)*b;
    //cout<<"MOD: "<<MOD<<'\n';

    p = 1; u = 1;
    q[1] = 1;
    cif[1] = 1;
    rest[1] = 1;
    while(q[p] != 0){

        int x = q[p];
        //cout<<x<<'\n';

        for(int i=0;i<=1;i++){

            int y = (x*10+i)%MOD;

            if(rest[y] == 0){
                rest[y] = 1;

                cif[y] = i;

                u++;
                q[u] = y;

                t[y] = x;
            }
        }

        p++;
    }

    rec(0);

    f.close();
    g.close();
    return 0;
}