Cod sursa(job #807589)

Utilizator gener.omerGener Omer gener.omer Data 4 noiembrie 2012 23:03:58
Problema Dezastru Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <fstream>
#include <iostream>
#include <iomanip>

using namespace std;

#define NMAX 32

int N, K;
double P[NMAX];
double S[NMAX][NMAX];
int    C[NMAX][NMAX];

int main()
{
	ifstream in("dezastru.in");
	ofstream out("dezastru.out");
	
	in >> N >> K;
	
	for(int i = 1; i <= N; ++i)
	{
		in >> P[i];
	}
	
	S[1][1] = P[1];
	C[1][1] = 1;
	
	for(int i = 2; i <= N; ++i)
	{
		S[i][1] = S[i-1][1] + P[i];
		C[i][1] = i; 
	}
	
	for(int i = 2; i <= N; ++i)
		for(int j = 2; j <= K; ++j)
		{
			S[i][j] = S[i-1][j] + S[i-1][j-1] * P[i];
			C[i][j] = C[i-1][j] + C[i-1][j-1];
		}
		
	double result = S[N][K] / C[N][K];
	
	setprecision(7);
	
	out << result;
	
	return 0;
}