Cod sursa(job #930133)

Utilizator rudarelLup Ionut rudarel Data 27 martie 2013 14:20:35
Problema Pascal Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.02 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;   
}