Cod sursa(job #2911169)

Utilizator Vlad_NistorNIstor Vlad Vlad_Nistor Data 27 iunie 2022 13:23:27
Problema Pascal Scor 50
Compilator cpp-64 Status done
Runda 3_iulie Marime 1.1 kb
#include <bits/stdc++.h>
using namespace std;

int prec(int i, int prim){
    int p = prim;
    int s = 0;
    while(p <= i){
        s += i/p;
        p *= prim;
    }
    return s;
}
int D[5000001],T[5000001], C[5000001];
int main(void){
    ofstream cout("pascal.out");
    ifstream cin("pascal.in");
    int n,d;
    cin >> n >> d;
    for(int i = 1;i<=n;i++){
        D[i] = prec(i,2);
        T[i] = prec(i,3);
        C[i] = prec(i,5);
    }
    int ans = 0,aj, aj1;
    for(int i = 1;i<=n;i++){
        if(d == 2){
            aj = D[n] - D[i] - D[n-i];
            if(aj >= 1)++ans;
        }
        if(d == 3){
            aj = T[n] - T[i] - T[n-i];
            if(aj >= 1)++ans;
        }
        if(d == 5){
            aj = C[n] - C[i] - C[n-i];
            if(aj >= 1)++ans;
        }
        if(d == 4){
            aj = D[n] - D[i] - D[n-i];
            if(aj >= 2)++ans;
        }
        if(d == 6){
            aj = D[n] - D[i] - D[n-i];
            aj1 = T[n] - T[i] - T[n-i];
            if(aj >= 1 && aj1 >= 1)++ans;
        }
    }
    cout << ans;
}