Cod sursa(job #2646975)

Utilizator DenisONIcBanu Denis Andrei DenisONIc Data 2 septembrie 2020 16:12:52
Problema Pascal Scor 40
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <bits/stdc++.h>
using namespace std;


int n,d,fr[6],ans,r[] = {2,3,5};


static inline void add(int x, int v){
    for (auto it : r)
        while (x % it == 0){
            x /= it;
            fr[it] += v;
        }
}

int main()
{
    freopen("pascal.in","r",stdin);
    freopen("pascal.out","w",stdout);

    cin >> n >> d;

    for (int i=1;i<(n+1)/2;i++){
        add(n-i+1, 1);
        add(i, -1);

        if (d == 6 && fr[2] && fr[3]) ans += 2;
        else if (d == 4 && fr[2] > 1) ans += 2;
        else if (fr[d]) ans += 2;
    }

    if (n%2==0){
        add(n-n/2+1, 1);
        add(n/2, -1);

        if (d == 6 && fr[2] && fr[3]) ans++;
        else if (d == 4 && fr[2] > 1) ans++;
        else if (fr[d]) ans++;
    }

    cout << ans << '\n';

    return 0;
}