Cod sursa(job #1410913)

Utilizator StarGold2Emanuel Nrx StarGold2 Data 31 martie 2015 12:41:58
Problema Multiplu Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.34 kb
#include <fstream>
#define DIM 2000010
#define LL unsigned long long
using namespace std;

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

LL N, M, i, j, K, ok, minim, k;
LL C[DIM], a, b, r, X, Y, Z;
LL F[DIM], p, u, U[DIM], P[DIM], T[DIM];

int CMMDC(LL a, LL b){
     LL c;
     while(b != 0){
          c = a % b;
          a = b;
          b = c;
     }
     return a;
}

void SetUp(){
     fin >> X >> Y;
     Z = X * Y / CMMDC(X, Y);
     return;
}

void CodeExpert(){
     p = 1; u = 1;
     C[1] = 1;
     U[1] = 1;

     while(1 == 1){
          X = C[p];
          Y = (X * 10 + 0) % Z;
          if(F[Y] == 0){
               u ++;
               C[u] = Y;
               F[Y] = 1;
               U[u] = 0;
               T[u] = p;
               if(Y == 0)
                    break;
          }
          Y = (X * 10 + 1) % Z;
          if(F[Y] == 0){
               u ++;
               C[u] = Y;
               F[Y] = 1;
               U[u] = 1;
               T[u] = p;
               if(Y == 0)
                    break;
          }
          p ++;
     }
     i = u;
     while(i != 0){
        P[++k] = U[i];
        i = T[i];
     }
     for(i = k; i >= 1; i --)
        fout << P[i];
     return;
}

int main(){
     SetUp();
     CodeExpert();
     return 0;
}