Cod sursa(job #1540288)

Utilizator mateicosCostescu Matei mateicos Data 2 decembrie 2015 16:22:37
Problema Multiplu Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <cstdio>

using namespace std;

struct mult{
  bool c;
  int r, t;
};

int cmmmc(int a, int b){
  int aux, ca, cb;
  ca=a;
  cb=b;
  while(cb>0){
    aux=ca%cb;
    ca=cb;
    cb=aux;
  }
  return a*b/ca;
}

mult v[2000005];
bool viz[2000005];
int a[2000005];

int main()
{
    freopen("multiplu.in", "r", stdin);
    freopen("multiplu.out", "w", stdout);
    int n, m, u, p, x, rs, cm, nr, cu;
    scanf("%d%d", &n, &m);
    u=1;
    p=1;
    x=0;
    cm=cmmmc(n, m);
    v[1].c=1;
    v[1].r=v[1].c%cm;
    v[1].t=0;
    while(viz[0]==0 && p<=u){
      rs=(v[p].r*10+x)%cm;
      if(!viz[rs]){
        viz[rs]=1;
        u++;
        v[u].c=x;
        v[u].r=rs;
        v[u].t=p;
        if (rs==0)
            break;
      }
      x++;
      if(x>1){
        p++;
        x=x%2;
      }
    }
    nr=0;
    while(u>0){
      a[nr]=v[u].c;
      nr++;
      u=v[u].t;
    }
    nr--;
    while(nr>=0){
      printf("%d", a[nr]);
      nr--;
    }
    return 0;
}