Cod sursa(job #2911172)

Utilizator AxicaVirtosu Alexandra Mihaela Axica Data 27 iunie 2022 13:34:21
Problema Pascal Scor 100
Compilator cpp-64 Status done
Runda 3_iulie Marime 1.2 kb
#include <fstream>
#define NMAX 5000000
using namespace std;
ifstream fin ("pascal.in");
ofstream fout ("pascal.out");

int r, d, D[NMAX+1], T[NMAX+1], C[NMAX+1], doi, trei, cinci;
int nr, i;

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

        fout<<nr*2+mij;
    }
    ///O(n)

    return 0;
}