Cod sursa(job #36572)

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

#include <cstdio>

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

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

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

	sum = 0.;
	for (i = 0; i < (1<<N); ++i) {
		for (cnt = 0, t = 1., j = 0; j < N; ++j)
			if (i & (1<<j))
				++cnt, t *= v[j];
		if (cnt == K)
			sum += t, ++tot;
	}
	printf("%lf\n", sum/(double)tot);
	
	return 0;
}