Cod sursa(job #422043)

Utilizator gabipurcaruGabi Purcaru gabipurcaru Data 22 martie 2010 08:01:23
Problema Dezastru Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.52 kb
#include <fstream>
#include <algorithm>
using namespace std;

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

bool b[30];
short i,n,k;
float p[30],s,num,d;

long fact(short k)
{
	long ret=1;
	for(int i=2; i<=k; i++)
		ret *= i;
	return ret;
}

int main()
{
	in>>n>>k;
	for(i=0; i<n; i++)
		in>>p[i];
	for(i=0; i<k; i++)
		b[i] = true;
	do
	{
		d=1;
		for(i=0; i<n; i++)
			if(b[i])
				d*=p[i];
		s+=d;
	}
	while(prev_permutation(b,b+n));
	out<<s*2/fact(n); 
	return 0;
}

// n!/k!(n-k)!