Cod sursa(job #938015)

Utilizator sleepaholicNeculaescu Theodor sleepaholic Data 11 aprilie 2013 16:52:46
Problema Pascal Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <fstream>

using namespace std;

int f2[5000001], f3[5000001], f5[5000001];

int howMany(int n, int d)
{
    int i;

    for (i = 0; i <= n; i++)
    {
        f2[i] = i/2 + f2[i/2];
        f3[i] = i/3 + f3[i/3];
        f5[i] = i/5 + f5[i/5];
    }

    int nr2, nr3, nr5, rez = 0;

    for (i = 0; i <= n; i++)
    {
        nr2 = f2[n] - f2[i] - f2[n-i];
        nr3 = f3[n] - f3[i] - f3[n-i];
        nr5 = f5[n] - f5[i] - f5[n-i];

        if (d == 2 && nr2) rez++;
        if (d == 3 && nr3) rez++;
        if (d == 4 && nr2 >= 2) rez++;
        if (d == 5 && nr5) rez++;
        if (d == 6 && nr2 && nr3) rez++;
    }

    return rez;
}

int main()
{
    int n, d;
    ifstream fin("pascal.in");
    fin >> n >> d;
    fin.close();

    ofstream fout("pascal.out");
    fout << howMany(n, d) << "\n";
    fout.close();

    return 0;
}