Cod sursa(job #604097)

Utilizator vladtarniceruVlad Tarniceru vladtarniceru Data 20 iulie 2011 13:36:43
Problema Pascal Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
# include <fstream>
using namespace std;

int r, d, i, sol;
int v[5000010];
int main ()
{
    ifstream f ("pascal.in");
    ofstream g ("pascal.out");

    f >> r >> d; ++r;
    for (i = 1; i <= r; ++i)
    {
        int D = i, nr = 0;
        while (D % d == 0) D /= d, ++nr;
        v[i] = v[i - 1] + nr;
    }

    //i! / ( (i-j)! * j!)
    int dr = r;
    r = (r + (r & 1)) >> 1;
    for (i = 1; i <= r; ++i)
    {
        int nr = v[dr] - (v[dr - i] + v[i]);
        if (nr >= 1) ++sol;
    }

    sol = (sol << 1) - (dr & 1) * (v[dr] - (v[dr - r] + v[r]));
    g << sol << '\n';
    g.close ();
    return 0;
}