Cod sursa(job #2911278)

Utilizator Robert_MitriRobert Mitri Robert_Mitri Data 28 iunie 2022 12:52:31
Problema Pascal Scor 100
Compilator cpp-64 Status done
Runda 3_iulie Marime 1.33 kb
#include <fstream>
using namespace std;
ifstream fin("pascal.in");
ofstream fout("pascal.out");

int r,d,D[5000005],T[5000005],C[5000005],ap;

void prec()
{
    for(int i=2;i<=r;i+=2)
    {
        D[i]=D[i/2]+1;
    }
    for(int i=3;i<=r;i+=3)
    {
        T[i]=T[i/3]+1;
    }
    for(int i=5;i<=r;i+=5)
    {
        C[i]=C[i/5]+1;
    }
    for(int i=1;i<=r;i++)
    {
        D[i]+=D[i-1];
        T[i]+=T[i-1];
        C[i]+=C[i-1];
    }
}

int main()
{
    fin>>r>>d;
    prec();
    if(d==2)
    {
        for(int i=1;i<=r;i++)
        {
            int doi =D[r]-D[r-i]-D[i];
             ap+=(doi>0);
        }
    }
    else if (d==3)
    {
        for(int i=1;i<=r;i++)
        {
            int trei=T[r]-T[r-i]-T[i];
             ap+=(trei>0);
        }
    }
    else if (d==4)
    {
        for(int i=1;i<=r;i++)
        {
            int doi =D[r]-D[r-i]-D[i];
            ap+=(doi>1);
        }
    }
    else if (d==5)
    {
        for(int i=1;i<=r;i++)
        {
            int cinci=C[r]-C[r-i]-C[i];
            ap+=(cinci>0);
        }
    }
    else
    {
        for(int i=1;i<=r;i++)
        {
            int doi =D[r]-D[r-i]-D[i];
            int trei=T[r]-T[r-i]-T[i];
            if(doi>0 && trei>0)
            ap++;
        }
    }
    fout<<ap;

}