Cod sursa(job #564174)

Utilizator nandoLicker Nandor nando Data 26 martie 2011 20:31:44
Problema Pascal Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <iostream>
#include <fstream>
using namespace std;

fstream fin ("pascal.in", ios::in);
fstream fout ("pascal.out", ios::out);

typedef long long int64;

int64 res = 0;
int ndiv[10];

void doNum (int nr, int a)
{
    int div[] = {2, 3, 5};

    for (int i = 0; i < 3; ++i) {
        while (nr % div[i] == 0) {
            ndiv[div[i]] += a;
            nr /= div[i];
        }
    }
}

int main()
{
    int r, d;
    fin >> r >> d;

    for (int i = 1; i <= r / 2; ++i) {
        doNum (r - i + 1, 1);
        doNum (i, -1);


        if ((d == 2 && ndiv[2] > 0) ||
            (d == 3 && ndiv[3] > 0) ||
            (d == 4 && ndiv[2] > 1) ||
            (d == 5 && ndiv[5] > 0) ||
            (d == 6 && ndiv[2] > 0 && ndiv[3])) {
            res+=2;
        }
        if (!(r & 1) && (i == (r >> 1))) {
            res--;
        }
    }

    fout << res << endl;

    return 0;
}