Cod sursa(job #604121)

Utilizator vladtarniceruVlad Tarniceru vladtarniceru Data 20 iulie 2011 15:26:43
Problema Pascal Scor 40
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;
    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 + 1 >> 1;
    for (i = 0; i < r; ++i)
    {
        int nr = v[dr] - (v[dr - i] + v[i]);
        if (nr > 0) ++sol;
    }

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