Cod sursa(job #2773851)

Utilizator valentinchipuc123Valentin Chipuc valentinchipuc123 Data 8 septembrie 2021 22:59:21
Problema Pascal Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f ("pascal.in");
ofstream g("pascal.out");
int n, d, cnt;
int p1[5000003], p2[5000003];
inline void calcul(int val, int v[])
{
    v[0]=0;
    for(int i=val; i<=n; i*=val)
        for(int j=i; j<=n; j+=i)
            v[j]++;

    for(int i=1; i<=n; i++)
        v[i]+=v[i-1];
}
int main()
{
    f>>n>>d;

    if(d==2||d==3||d==5)
    {
        calcul(d, p1);

        for(int i=1; i<=n-1; i++)
            if(p1[n]-p1[i]-p1[n-i]) cnt++;
    }
    else if(d==4)
    {
        calcul(2, p1);

        for(int i=1; i<=n-1; i++)
            if(p1[n]-p1[i]-p1[n-i]>=2) cnt++;
    }
    else
    {
        calcul(2, p1);
        calcul(3, p2);
        for(int i=1; i<=n-1; i++)
            if(p1[n]-p1[i]-p1[n-i] && p2[n]-p2[i]-p2[n-i]) cnt++;
    }
    g<<cnt;
    return 0;
}