Cod sursa(job #1418857)

Utilizator robx12lnLinca Robert robx12ln Data 14 aprilie 2015 11:28:19
Problema Multiplu Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.1 kb
#include<fstream>
#define DIM 2000005
using namespace std;
ifstream fin("multiplu.in");
ofstream fout("multiplu.out");
int M,n;
int t[DIM],rest[DIM];
short c[DIM],cif[DIM];
char f[DIM];
int i,r,a,b,x,y;
int main(){
    fin>>x>>y;
    a=x;
    b=y;
    r=0;
    while(b!=0){
        r=a%b;
        a=b;
        b=r;
    }
    M=(x*y)/a;
    i=1;
    n=1;
    cif[1]=1;
    t[1]=0;
    rest[1]=1;
    while(0==0){
        r=rest[i]*10;
        if(f[r%M]==0){
            f[r%M]=1;
            t[++n]=i;
            cif[n]=0;
            rest[n]=r%M;
            if(r%M==0){
                c[1]=0;
                c[0]=1;
                break;
            }
        }
        r++;
        if(f[r%M]==0){
            f[r%M]=1;
            t[++n]=i;
            cif[n]=1;
            rest[n]=r%M;
            if(r%M==0){
                c[1]=1;
                c[0]=1;
                break;
            }
        }
        i++;
    }
    while(i!=0){
        c[++c[0]]=cif[i];
        i=t[i];
    }
    for(i=c[0];i>=1;i--){
        fout<<c[i];
    }
    return 0;
}