Cod sursa(job #751593)

Utilizator SteveStefan Eniceicu Steve Data 26 mai 2012 13:32:34
Problema Dezastru Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <fstream>
#include <iomanip>

using namespace std;

int N, K;
double P[30];
double mat[30][30];

void Citire ()
{
	ifstream fin ("dezastru.in");
	fin >> N >> K;
	for (int i = 0; i < N; i++)
	{
		fin >> P[i];
	}
	fin.close ();
}

void Initialize_Shit ()
{
	mat[0][0] = P[0];
	for (int j = 1; j < K; j++)
	{
		mat[0][j] = 0;
	}
	for (int i = 1; i < N; i++)
	{
		mat[i][0] = mat[i - 1][0] + P[i];
		for (int j = 1; j < K; j++)
		{
			mat[i][j] = 0;
		}
	}
	for (int i = 1; i < N; i++)
	{
		for (int j = 1; j < K; j++)
		{
			mat[i][j] = mat[i - 1][j - 1] * P[i] + mat[i - 1][j];
		}
	}
}

void Business ()
{
	double alfa = 1;
	for (int i = K + 1; i <= N; i++)
	{
		alfa *= i;
		alfa /= (N - i + 1);
	}
	ofstream fout ("dezastru.out");
	double x = (double) mat[N - 1][K - 1] / alfa;
	fout << fixed << setprecision (6) << x;
	fout.close ();
}

int main ()
{
	Citire ();
	Initialize_Shit ();
	Business ();
	return 0;
}