Cod sursa(job #3331891)

Utilizator BuzdiBuzdugan Rares Andrei Buzdi Data 1 ianuarie 2026 14:46:32
Problema Pascal Scor 50
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1 kb
#include <bits/stdc++.h>

#define ll long long

using namespace std;

ifstream fin("pascal.in");
ofstream fout("pascal.out");

const int NMAX = 26;
const int MOD = 9901;

int n, d, answer;

ll cnt_fact(int n, int v) {
    ll pv = v, cntv = 0;
    while(pv <= n) {
        cntv += n / pv;
        pv *= v;
    }
    return cntv;
}

ll cnt_comb(int n, int k, int v) {
    return cnt_fact(n, v) - cnt_fact(k, v) - cnt_fact(n - k, v);
}

int main() {
    fin >> n >> d;
    for(int j = 0; j <= n; j++) {
        if(d == 2) {
            answer += (cnt_comb(n, j, 2) >= 1);
        }
        else if(d == 3) {
            answer += (cnt_comb(n, j, 3) >= 1);
        }
        else if(d == 4) {
            answer += (cnt_comb(n, j, 2) >= 2);
        }
        else if(d == 5) {
            answer += (cnt_comb(n, j, 5) >= 1);
        }
        else {
            answer += (cnt_comb(n, j, 2) >= 1 && cnt_comb(n, j, 3) >= 1);
        }
    }
    fout << answer << '\n';
    return 0;
}