Cod sursa(job #134331)

Utilizator raula_sanChis Raoul raula_san Data 11 februarie 2008 14:06:18
Problema Dezastru Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.47 kb
#include <cstdio>

#define dim 26

int N, K;
double P, Nr;
double A[dim];

void Back(int k, int last, double s)
{
	if(k == K + 1)
	{
		P += s;
		++ Nr;
	}
	else
		for(int i=last+1; i<=N; ++i)
			Back(k+1, i, s*A[i]);
}

int main()
{
	freopen("dezastru.in", "rt", stdin);
	freopen("dezastru.out", "wt", stdout);

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

	Back(1, 0, 1);	
	P /= Nr;

	printf("%lf", P);

	fclose(stdin);
	fclose(stdout);
	return 0;
}