Cod sursa(job #811802)

Utilizator ChallengeMurtaza Alexandru Challenge Data 12 noiembrie 2012 22:27:58
Problema Pascal Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <fstream>

using namespace std;

const char InFile[]="pascal.in";
const char OutFile[]="pascal.out";
const int MaxR=5000111;

ifstream fin(InFile);
ofstream fout(OutFile);

int n,d,p2,p3,p5,r2,r3,r5,sol,tmp;

int main()
{
	fin>>n>>d;
	fin.close();

	while(d%2==0)
	{
		++r2;
		d/=2;
	}

	while(d%3==0)
	{
		++r3;
		d/=3;
	}

	while(d%5==0)
	{
		++r5;
		d/=5;
	}

	for(register int i=1;i<=n/2;++i)
	{
		tmp=i;
		while(tmp%2==0)
		{
			--p2;
			tmp/=2;
		}
		while(tmp%3==0)
		{
			--p3;
			tmp/=3;
		}
		while(tmp%5==0)
		{
			--p5;
			tmp/=5;
		}
		tmp=n-i+1;
		while(tmp%2==0)
		{
			++p2;
			tmp/=2;
		}
		while(tmp%3==0)
		{
			++p3;
			tmp/=3;
		}
		while(tmp%5==0)
		{
			++p5;
			tmp/=5;
		}

		if(p2>=r2 && p3>=r3 && p5>=r5)
		{
			sol+=2;
			if(i*2==n)
			{
				--sol;
			}
		}
	}

	fout<<sol;
	fout.close();
	return 0;
}