Cod sursa(job #2911003)

Utilizator MihaiCostacheCostache Mihai MihaiCostache Data 26 iunie 2022 12:46:25
Problema Pascal Scor 40
Compilator cpp-64 Status done
Runda 3_iulie Marime 1.33 kb
#include <fstream>
#define NMAX 5000001
using namespace std;
ifstream fin("pascal.in");
ofstream fout("pascal.out");

int calc(int i, int val)
{
    int p=val;
    int r=0;
    while(p<=i)
    {
        r+=i/p;
        p*=val;
    }
    return r;
}
int n, d1, d[NMAX], t[NMAX], c[NMAX], sol;
int main()
{
    fin>>n>>d1;
    ///d[i]=la ce putere apare 2 in i!
    ///t[i]=la ce putere apare 3 in i!
    ///c[i]=la ce putere apare 5 in i!
    for(int i=1; i<=n; i++)
    {
        d[i]=calc(i, 2);
        t[i]=calc(i, 3);
        c[i]=calc(i, 5);
    }
    for(int j=1; j<n; j++)
    {
        int aux=0, aux2=0, aux3=0;
        if(d1==2)
        {
            aux=d[n]-d[j]-d[n-j];
            if(aux>=1)
                sol++;
        }
        if(d1==3)
        {
            aux=t[n]-t[j]-t[n-j];
            if(aux>=1)
                sol++;
        }
        if(d1==5)
        {
            aux=c[n]-c[j]-c[n-j];
            if(aux>=1)
                sol++;
        }
        if(d1==4)
        {
            aux=d[n]-d[n-j]-d[j];
            if(aux>=1)
                sol++;
        }
        if(d1==6)
        {
            aux2=d[n]-d[j]-d[n-j];
            aux3=t[n]-t[j]-t[n-j];
            if(aux2>=1 && aux3>=1)
                sol++;
        }
    }
    fout<<sol;
    return 0;
}