Cod sursa(job #548110)

Utilizator mihai995mihai995 mihai995 Data 7 martie 2011 09:09:18
Problema Pascal Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.06 kb
#include <fstream>
using namespace std;

int n,d,nr;

ifstream in("pascal.in");
ofstream out("pascal.out");

int fact(int n,int x)
{
	int nr=0;
	for (nr=0;n%x==0;nr++,n/=x);
	return -nr;
}

int f2()
{
	int i,rez=0;
	for (i=1;i<=n;i++)
	{
		rez+=fact(i,2)-fact(n-i+1,2);
		nr+=(rez>0);
	}
	return nr;
}

int f3()
{
	int i,rez=0;
	for (i=1;i<=n;i++)
	{
		rez+=fact(i,3)-fact(n-i+1,3);
		nr+=(rez>0);
	}
	return nr;
}

int f4()
{
	int i,rez=0;
	for (i=1;i<=n;i++)
	{
		rez+=fact(i,2)-fact(n-i+1,2);
		nr+=(rez>1);
	}
	return nr;
}

int f5()
{
	int i,rez=0;
	for (i=1;i<=n;i++)
	{
		rez+=fact(i,5)-fact(n-i+1,5);
		nr+=(rez>0);
	}
	return nr;
}

int f6()
{
	int i,rez1=0,rez2=0;
	for (i=1;i<=n;i++)
	{
		rez1+=fact(i,2)-fact(n-i+1,2);
		rez2+=fact(i,3)-fact(n-i+1,3);
		nr+=(rez1>0 && rez2>0);
	}
	return nr;
}

int etc()
{
	if (d==2)
		return f2();
	if (d==3)
		return f3();
	if (d==4)
		return f4();
	if (d==5)
		return f5();
	return f6();
	
}

int main()
{
	in>>n>>d;
	out<<etc()<<"\n";
	return 0;
}