Cod sursa(job #1959706)

Utilizator kappapride123Kappa Pride kappapride123 Data 9 aprilie 2017 20:17:55
Problema Pascal Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.13 kb
#include <fstream>

using namespace std;

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

const int NMAX = 10;

void descomp(int vec[], int nr, int sgn) {
    while (nr % 2 == 0) {
            vec[2] += sgn;
            nr /= 2;
        }
        while (nr % 3 == 0) {
            vec[3] += sgn;
            nr /= 3;
        }
        while (nr % 5 == 0) {
            vec[5] += sgn;
            nr /= 5;
        }
    vec[4] = vec[2] / 2;
    vec[6] = vec[3];
}

int main() {
    int n, d, ans = 0;
    int A[NMAX], B[NMAX], C[NMAX];
    fin >> n >> d;
    fin.close();
    for (int i = 2; i <= 6; ++ i)
        A[i] = B[i] = C[i] = 0;
    for (int i = 2; i <= n; ++ i)
        descomp(A, i, 1);
    for (int i = 2; i < n; ++ i)
        descomp(B, i, 1);
    descomp(C, 1, 1);
    for (int j = 2; j <= n / 2; ++ j) {
        descomp(B, j - 1, -1);
        descomp(C, j, 1);
        if (A[d] >= B[d] + C[d])
            ans += 2;
    }
    descomp(B, n / 2, -1);
    descomp(C, n / 2 + 1, 1);
    if (A[d] >= B[d] + C[d])
        ++ ans;
    fout << ans << "\n";
    fout.close();
    return 0;
}