Cod sursa(job #3350786)

Utilizator EricDimiCismaru Eric-Dimitrie EricDimi Data 12 aprilie 2026 22:50:21
Problema Pascal Scor 40
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <fstream>

using namespace std;

ifstream f("pascal.in");
ofstream g("pascal.out");

const int DMAX = 6;

bool prim[DMAX + 1];

inline void Init()
{
    prim[2] = prim[3] = prim[5] = 1;
}

int Exp(int n, int p)
{
    if(prim[p])
    {
        int t = p, exp = 0;
        while(t <= n)
        {
            exp += n / t;
            t *= p;
        }
        return exp;
    }
    if(p == 4)
        return (Exp(n, 2) >> 1);
}

bool Comb(int n, int k, int p)
{
    if(p == 6)
        for(int i = 2; i <= 3; i++)
            if(Exp(n, i) <= (Exp(k, i) + Exp(n - k, i)))
                return false;
    return Exp(n, p) > (Exp(k, p) + Exp(n - k, p));
}

int main()
{
    Init();
    int R, D, cnt = 0;
    f >> R >> D;
    for(int i = 0; i <= R; i++)
        if(Comb(R, i, D) > 0)
            cnt++;
    g << cnt << '\n';
    f.close();
    g.close();
    return 0;
}