Cod sursa(job #2400478)

Utilizator divianegoescuDivia Negoescu divianegoescu Data 8 aprilie 2019 20:00:14
Problema Multiplu Scor 30
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <fstream>
using namespace std;
ifstream fin("multiplu.in");
ofstream fout("multiplu.out");
int n,i,p,u,m,a,b,r;
int f[2000001];
struct coada{
    int rest;
    int cifra;
    int prec;
}v[2000001];
int cmmdc(int a,int b){
    if(b==0)return a;
    return cmmdc(b,a%b);
}
void af(int u){
    if(v[u].prec)
        af(v[u].prec);
    fout<<v[u].cifra;

}
int main(){
    fin>>a>>b;
    m=a*b/cmmdc(a,b);
    v[1].rest=v[1].cifra=f[1]=1;
    for(p=u=1;p<=u;p++){
        r=(v[p].rest*10+1)%m;
        if(f[r]==0){
            f[r]=1;
            v[++u].rest=r;
            v[u].prec=p;
            v[u].cifra=1;
        }
        if(f[0]==1)
            break;
        r=(v[p].rest*10)%m;
        if(f[r]==0){
            f[r]=1;
            v[++u].rest=r;
            v[u].prec=p;
            v[u].cifra=0;
        }
        if(f[0]==1)
            break;
    }
    af(u);
    return 0;
}