Cod sursa(job #2330163)

Utilizator Anakin1001George Giorgiu Gica Anakin1001 Data 27 ianuarie 2019 23:11:38
Problema Multiplu Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <fstream>
using namespace std;
ifstream f("multiplu.in");
ofstream g("multiplu.out");
int i,sol[2000001],v[2000001],r,q[2000001],a,b,viz[2000001],n,t[2000001];
int coada(){
    int p,u;
    p=u=0;
    while(viz[0]==0){
        int x=q[p];
        if(viz[x*10%n]==0){
            q[++u]=x*10%n;
            v[u]=0;
            t[u]=p;
            viz[x*10%n]=1;
        }
        if(viz[0]==1)
            return u;
        if(viz[(x*10+1)%n]==0){
            q[++u]=(x*10+1)%n;
            v[u]=1;
            t[u]=p;
            viz[(x*10+1)%n]=1;
        }
        if(viz[0]==1)
            return u;
        p++;
    }
}
int main()
{   f>>a>>b;
    int p=a*b;
    while(b!=0){
        r=a%b;
        a=b;
        b=r;
    }
    n=p/a;
    q[0]=1;
    viz[1]=1;
   int m=coada();
int    k=0;
    sol[++k]=v[m];
    while(t[m]!=0){
        m=t[m];
        sol[++k]=v[m];
    }
    g<<1;
    for(i=k;i>=1;i--)
        g<<sol[i];
    return 0;
}