Cod sursa(job #406848)

Utilizator mihai995mihai995 mihai995 Data 1 martie 2010 20:51:14
Problema Dezastru Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.55 kb
#include <fstream>
using namespace std;
double atac[64],pos=0.0;
int n,k;
ifstream f("dezastru.in");
ofstream o("dezastru.out");

unsigned long long comb(int n,int k)
{
	int i;
	unsigned long long x=1;
	for (i=k+1;i<=n;i++)
		x*=i;
	for (i=2;i<=n-k;i++)
		x/=i;
	return x;
}

void bkt(int p,int init,double poz)
{
	if (p==k+1) 
	{
		pos+=poz;
		return;
	} 
	for (int i=init+1;i<=n-k+p;i++)
		bkt(p+1,i,poz*atac[i]);
}

int main()
{
	f>>n>>k;
	for (int i=1;i<=n;i++)
		f>>atac[i];
	bkt(1,0,1);
	o<<pos/comb(n,k);
	return 0;
}