Cod sursa(job #807514)

Utilizator gener.omerGener Omer gener.omer Data 4 noiembrie 2012 20:58:32
Problema Dezastru Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include <cstdio>
#include <cstdlib>

using namespace std;

#define NMAX 32

int v[NMAX];
float P[NMAX];
int N, K;

double s = 0;
long long n = 0;

inline void back(int k, float p, int last)
{	
	if(k > K)
	{
		s += p;
		++n;
		return;
	}

	for(int i = last + 1; i <= N - (K - k); ++i)
	{
		back(k + 1, p * P[i], i);
	}
}	

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

	scanf("%d %d", &N, &K);
	
	for(int i = 1; i <= N; ++i)
		scanf("%f", &P[i]);
		
	back(1, 1, 0);
	
	printf("%.6f", s/n);
	
	return 0;
}