Cod sursa(job #37832)

Utilizator Adriana_SAdriana Sperlea Adriana_S Data 25 martie 2007 12:46:29
Problema Dezastru Scor 70
Compilator cpp Status done
Runda preONI 2007, Runda 4, Clasa a 9-a si gimnaziu Marime 0.64 kb
#include <stdio.h>

const int N_MAX = 32;

int N, K, nr = 0;
long double v[N_MAX], S = 0;
int st[N_MAX];

void back(int k, long double s)
{
	if (k == K + 1) {
		S += s;
		nr ++;
	} else {
		for (int c = st[k - 1] + 1; c <= N - K + k; c ++) {
			st[k] = c;
			back(k + 1, s * v[c]);
		}
	}
}

int main()
{
	freopen("dezastru.in", "r", stdin);
#ifndef _KKT_
	freopen("dezastru.out", "w", stdout);
#endif

	int i;
	
	scanf("%d %d\n", &N, &K);
	for (i = 1; i <= N; i ++) {
		scanf("%Lf ", &v[i]);
	}

	back(1, 1);

/*	for (j = K + 1; j <= N; j ++) {
//		printf("%Lf\n", S);
		S /= j;
	}
*/
//	printf("%d\n", nr);	
	printf("%0.6Lf\n", S / nr);
	
	return 0;
}