Cod sursa(job #2266399)

Utilizator PredaBossPreda Andrei PredaBoss Data 22 octombrie 2018 17:13:02
Problema Multiplu Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.22 kb
#include<fstream>
#include<iostream>
#include<queue>
#define DN 2000005
#define x first
#define y second
using namespace std;
ifstream fin("multiplu.in");
ofstream fout("multiplu.out");
long long a,b,r,put;
int f,g,s,pr[DN],nr,t;
char rez[DN];
bool viz[DN];
int q[DN];
string z;
int cmmdc(int a,int b)
{
    int c;
    while(b)
    {
        c=a%b;
        a=b;
        b=c;
    }
    return a;
}
int vf(long long a)
{
    while(a)
    {
        if(a%10>1)
            return 0;
        a=a/10;
    }
    return 1;
}
void ve(int f)
{
    if(f!=1)
        ve(pr[f]);
    z+=rez[f];
}
int main()
{
    fin>>a>>b;
    r=(a*b)/cmmdc(a,b);
    nr=q[1]=1;
    viz[1]=1;
    rez[1]='1';
    for(int i=1;i<=nr;i++)
    {
        t=(q[i]*10)%r;
        if(viz[t]==false)
        {
            viz[t]=true;
            nr++;
            q[nr]=t;
            rez[t]='0';
            pr[t]=q[i];
        }
        if(t==0)
            break;
        t=(t+1)%r;
        if(viz[t]==false)
        {
            viz[t]=true;
            nr++;
            q[nr]=t;
            rez[t]='1';
            pr[t]=q[i];
        }
        if(t==0)
            break;
    }
    ve(0);
    fout<<z;
}