Cod sursa(job #422973)

Utilizator bog29Antohi Bogdan bog29 Data 23 martie 2010 13:05:47
Problema Dezastru Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include<fstream>
#define dmax 30
using namespace std;
ifstream in("dezastru.in");
ofstream out("dezastru.out");

int n,m,sol[dmax];
long long nr;
double x[dmax],s,r;

void bkt(int k,double pc)
{	int i,h;
	h=k;
	if(k==m+1)
	{	s+=pc;
		nr++;
	}	
	else
	for(i=sol[k-1]+1;i<=n-(m-k);i++)
	{	sol[k]=i;
		bkt(k+1,pc*x[i]);
	}
}

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

int main()
{	int i;
	in>>n>>m;
	for(i=1;i<=n;i++)
		in>>x[i];
	in.close();
	bkt(1,1);
	s*=fact(m);
	nr*=fact(m);
	r=s/(double)nr;
	out<<fixed<<r;
	out.close();
	return 0;
}