Cod sursa(job #1012929)

Utilizator RaduGabriel2012Dinu Radu RaduGabriel2012 Data 19 octombrie 2013 22:01:09
Problema Multiplu Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.1 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("multiplu.in");
ofstream g("multiplu.out");
int a,b,n,prec[2000005],r[2000005],sol[2005],nsol=0,k,ind;
bool act[2000005],is[2000005],last;
int cmmmc(int x,int y)
{ int p=x*y,z;
   while(y)
   { z=x%y;
     x=y; y=z;
   }
return p/x;
}
int main()
{ int i,j,rest;
    f>>a>>b;
   n=cmmmc(a,b); //cout<<n;
     prec[1]=0; r[1]=1%n;
     act[1]=1; is[r[1]]=1;
      k=1;
    for(i=1;i<=k;i++)
     { if (!r[i]) {last=act[i]; break;}
         rest=(r[i]*10)%n;
         if (!rest) {last=0; break;}
       if (!is[rest])
        {k++;
         r[k]=rest; prec[k]=i;
         act[k]=0;
         is[rest]=1;
         }

       rest=((r[i]*10)+1)%n;
         if (!rest) {last=1; break;}
       if (!is[rest])
        {k++;
         r[k]=rest; prec[k]=i;
         act[k]=1;
         is[rest]=1;
         }
     }
       nsol++; sol[nsol]=last;
       nsol++; sol[nsol]=act[i];
   while(prec[i])
    { i=prec[i];
       nsol++; sol[nsol]=act[i];
    }

    for(i=nsol;i>=1;i--)
     g<<sol[i];
    return 0;
}