Cod sursa(job #484978)

Utilizator cristina_ioanaCristina Ioana cristina_ioana Data 16 septembrie 2010 17:54:49
Problema Pascal Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include<fstream>
using namespace std;
long long e(int n,int p)// p=nr. prim
{
	int nr=0;
	while(n>0)
	{nr=nr+n/p;
	n=n/p;
	}
	return nr;
}
int ecomb(int n,int k,int p)
{
	int nr;
	nr=e(n,p)-e(k,p)-e(n-k,p);
	return nr;
}

int calcul(int r,int k,int d)
{int x,y;
	if(d==2||d==3||d==5)
	{x=ecomb(r,k,d);
	return x>0;
	}
	else if(d==6)
	{
	 y=ecomb(r,k,3);
	 if(y==0)return 0;
	 x=ecomb(r,k,2);
	 return min(x,y)>0;
	}
	else {x=ecomb(r,k,2);
	      return x>=2;
	     }	
}
int main()
{
	int r,d;
	ifstream f("pascal.in");
	ofstream g("pascal.out");
	f>>r>>d;
	int nr=0;
	for(int i=1;i<r;i++)
		nr=nr+calcul(r,i,d);
	g<<nr<<'\n';
	
}