Cod sursa(job #2911276)

Utilizator Robert_MitriRobert Mitri Robert_Mitri Data 28 iunie 2022 12:48:04
Problema Pascal Scor 90
Compilator cpp-64 Status done
Runda 3_iulie Marime 1.03 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();
    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];
        int cinci=C[r]-C[r-i]-C[i];
        if(d==2)
        {
            ap+=(doi>0);
        }
        else if(d==3)
        {
            ap+=(trei>0);
        }
        else if(d==4)
        {
            ap+=(doi>1);
        }
        else if(d==5)
        {
            ap+=(cinci>0);
        }
        else if(d==6)
        {
            ap+=(min(doi,trei)>0);
        }
    }
    fout<<ap;

}