Pagini recente » Cod sursa (job #1008438) | Cod sursa (job #823428) | Cod sursa (job #1112149) | Rating Mihnea Cucu (MihneaCucu) | Cod sursa (job #2451468)
#include <fstream>
#define input "dezastru.in"
#define output "dezastru.out"
#define NMAX 30
using namespace std;
ifstream in(input);
ofstream out(output);
int N, K;
double prob[NMAX], DP[NMAX][NMAX], fact[NMAX];
void Read_Data()
{
in >> N >> K;
for(int i = 1; i <= N; i++)
in >> prob[i];
}
void Solve()
{
DP[0][0] = 1, fact[0] = 1;
for(int i = 1; i <= N; i++)
{
fact[i] = i * fact[i-1];
DP[i][0] = 1;
for(int j = 1; j <= i; j++)
DP[i][j] = DP[i-1][j] + DP[i-1][j-1] * prob[i];
}
double sol = DP[N][K] * fact[K] * fact[N-K] / fact[N];
out << (double)sol;
}
int main()
{
Read_Data();
Solve();
return 0;
}