Cod sursa(job #744805)

Utilizator lucian666Vasilut Lucian lucian666 Data 9 mai 2012 17:58:45
Problema Dezastru Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.54 kb


#include<cstdio>
#include<fstream>
using namespace std;
int n,k1,x[30],nrc;
double p[30],probfinal;
inline void back(int k,double prob)
{
	if(k>k1)
	{
		
		probfinal=probfinal+prob;
		++nrc;
	}
	else
	for(int i=x[k-1]+1;i<=n-k1+k;++i)
	{
		x[k]=i;
			back(k+1,prob*p[i]);
	}
}

int main()
{
	freopen("dezastru.in","r",stdin);
	freopen("dezastru.out","w",stdout);
	scanf("%d%d",&n,&k1);
	for(int i=1;i<=n;++i)
		scanf("%lf",&p[i]);
	back(1,1.0);
	//out<<(1.0*probfinal)/(1.0*nrc);
	printf("%lf",(1.0*probfinal)/(1.0*nrc));

	return 0;
}