Cod sursa(job #982402)

Utilizator stefanzzzStefan Popa stefanzzz Data 9 august 2013 10:30:36
Problema Multiplu Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <fstream>
#define MAXX 2000005
using namespace std;
ifstream f("multiplu.in");
ofstream g("multiplu.out");

int a,b,x,q[MAXX],back[MAXX],st,dr,y;
bool cifra[MAXX],uz[MAXX];

int cmmdc(int p,int q);
void afisare(int pos);

int main()
{
    f>>a>>b;
    x=a*b/cmmdc(a,b);
    q[++dr]=1;
    uz[1]=1;
    cifra[dr]=1;
    for(st=1;;st++){
        y=q[st]*10%x;
        if(!uz[y]){
            q[++dr]=y;
            uz[y]=1;
            back[dr]=st;}
        if(!y){
            afisare(dr);
            break;}
        y++;
        if(y==x)
            y=0;
        if(!uz[y]){
            q[++dr]=y;
            uz[y]=1;
            back[dr]=st;
            cifra[dr]=1;}
        if(!y){
            afisare(dr);
            break;}}
    g<<'\n';
    f.close();
    g.close();
    return 0;
}

int cmmdc(int p,int q){
    if(!q)
        return p;
    return cmmdc(q,p%q);}

void afisare(int pos){
    if(!pos)
        return;
    afisare(back[pos]);
    g<<cifra[pos];}