Cod sursa(job #3350791)

Utilizator EricDimiCismaru Eric-Dimitrie EricDimi Data 13 aprilie 2026 08:46:04
Problema Pascal Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <fstream>

using namespace std;

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

int Exp(int n, int p)
{
    int t = p, exp = 0;
    while(t <= n)
    {
        exp += n / t;
        t *= p;
    }
    return exp;
}

bool Comb(int n, int k, int p)
{
    if(p == 6)
        return Exp(n, 2) - (Exp(k, 2) + Exp(n - k, 2)) > 0 &&
               Exp(n, 3) - (Exp(k, 3) + Exp(n - k, 3)) > 0;
    if(p == 4)
        return Exp(n, 2) - (Exp(k, 2) + Exp(n - k, 2)) > 1;
    return Exp(n, p) - (Exp(k, p) + Exp(n - k, p)) > 0;
}

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