Cod sursa(job #2551022)

Utilizator BlueLuca888Girbovan Robert Luca BlueLuca888 Data 19 februarie 2020 13:07:28
Problema Multiplu Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.07 kb
#include <iostream>
#include <fstream>
#include <bitset>
#define LEN 2000005

using namespace std;

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

bitset<LEN> f;
int a, b, n;
int aa, bb, r;
int st, dr, d[LEN], crt;
int v[LEN], t[LEN];

void drum(int i){
     if(i != 0){
          drum(t[i]);
          fout<<v[i];
     }
}

int main (){
     fin>>a>>b;
     n=a*b;

     aa=a;
     bb=b;
     while(bb != 0){
          r=aa%bb;
          aa=bb;
          bb=r;
     }
     n/=aa;

     d[1]=1;
     st=1;
     dr=1;

     v[1]=1;
     f[1]=1;
     while(st <= dr){
          for(int cif=0; cif<=1; cif++){

               crt=(d[st] * 10 + cif)%n;

               if(f[crt] == 0){
                    f[crt]=1;
                    d[++dr]=crt;

                    v[dr]=cif;
                    t[dr]=st;

                    if(crt == 0){
                         st=dr;
                         break;
                    }
               }
          }
          st++;
     }

     drum(dr);
     return 0;
}