Cod sursa(job #164392)

Utilizator cretuMusina Rares cretu Data 24 martie 2008 09:54:17
Problema Pascal Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 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;    
}