Cod sursa(job #1105587)

Utilizator pulseOvidiu Giorgi pulse Data 11 februarie 2014 21:36:31
Problema Dezastru Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <fstream>
#include <iomanip>

using namespace std;

#define NMAX 28

ifstream fin ("dezastru.in");
ofstream fout ("dezastru.out");

int N, K;
double v[NMAX], A[NMAX][NMAX], B[NMAX][NMAX];

void Read_Data ()
{
	fin >> N >> K;
	for (int i = 1; i <= N; ++i)
		fin >> v[i];

	for (int i = 0; i <= NMAX; ++i)
	{
		A[i][0] = 1.0;
		B[i][0] = 1.0;
	}
}

void Solve ()
{
	for (int i = 1; i <= N; ++i)
	{
		for (int j = 1; j <= K; ++j)
		{
			A[i][j] = A[i - 1][j] + A[i - 1][j - 1] * v[i];
			B[i][j] = B[i - 1][j] + B[i - 1][j - 1];
		}
	}

	fout << setprecision (6);
	fout << A[N][K] / B[N][K] << "\n";
}

int main ()
{
	Read_Data ();
	Solve ();

	return 0;
}