Cod sursa(job #422957)

Utilizator bog29Antohi Bogdan bog29 Data 23 martie 2010 12:55:50
Problema Dezastru Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 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;
	if(k==m+1)
	{	s+=pc;
		nr++;
	}	
	else
	for(i=sol[k-1]+1;i<=n;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;
}