Cod sursa(job #2634678)

Utilizator stefan.popescuPopescu Stefan stefan.popescu Data 11 iulie 2020 22:33:07
Problema Pascal Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream in ("pascal.in");
ofstream out("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=val; j<=n; j+=val)
            v[j]++;
}
int main()
{
    in>>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++;
    }
    out<<cnt;
    return 0;
}