Cod sursa(job #36561)

Utilizator grecoTiberiu-Lucian Florea greco Data 23 martie 2007 18:37:41
Problema Dezastru Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.46 kb
using namespace std;

#include<cstdio>

int N, K, cnt;
double v[64], sum;

void back(int lev, int f, double p)
{
	int i;
	if (lev == K+1)
		sum += p, ++cnt;
	else
		for (i = f; i <= N; ++i)
			back(lev+1, i+1, p*v[i]);
}

int main()
{
	int i;
	freopen("dezastru.in", "r", stdin);
	freopen("dezastru.out", "w", stdout);

	scanf("%d %d", &N, &K);
	for (i = 1; i <= N; ++i)
		scanf("%lf", v+i);

	sum = 0.;
	back(1, 1, 1.);
	
	printf("%lf\n", sum/(double)cnt);
	return 0;
}