Cod sursa(job #1867909)

Utilizator mateilmatei lascu mateil Data 4 februarie 2017 13:47:20
Problema Multiplu Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <fstream>
using namespace std;
int v[200001], ant[2000001], val[2000001];
int main()
{

    ifstream f("multiplu.in");
    ofstream g("multiplu.out");
    int a,b, r = 1, i  =  2, p ,u , x, y ;
    f>>a>>b;
    while(a > 0 && b > 0){
       while(a % i == 0 || b % i == 0){
         r*=i;
         if(a % i == 0)
          a = a / i;
         if(b % i == 0)
          b = b / i;
       }
       i++;
    }
    ant[1] = 1;
    v[0] = 1;
    p = u = 0;
    while(p <= u){
     x = v[p++];
     y = x * 10 % r;
     if(y != 1 && ant[y] == 0){
       val[y] = 0;
       ant[y] = x;
       v[++u] = y;}
     y = (x * 10 + 1) % r;
     if(y != 1 && ant[y] == 0){
      val[y] = 1;
      ant[y] = x;
      v[++u] = y;
     }
    }
    while(v[p] != 1){
      g<<val[p];
      p = ant[p];
    }
    return 0;
}