Pagini recente » Cod sursa (job #2112078) | Cod sursa (job #2950951) | Cod sursa (job #2964879) | Cod sursa (job #503005) | Cod sursa (job #1755881)
#include <cstdio>
#include <iostream>
using namespace std;
const int nmx = 26;
int n,k;
double v[nmx];
double dp[nmx];
double pascal[nmx];
void citire()
{
scanf("%d %d", &n, &k);
for(int i = 1; i <= n; ++i)
scanf("%lf", &v[i]);
}
void dinamica_sume()
{
dp[0] = 1;
for(int i = 1; i <= n; ++i)
for(int j = min(i,k); j; --j)
dp[j] = dp[j] + dp[j-1] * v[i];
}
void dinamica_triunghi_pascal()
{
pascal[0] = 1;
for(int i = 1; i <= n; ++i)
for(int j = i; j; --j)
pascal[j] += pascal[j-1];
}
void afish()
{
printf("%f\n", dp[k] / pascal[k]);
}
int main()
{
freopen("dezastru.in", "r", stdin);
freopen("dezastru.out", "w", stdout);
citire();
dinamica_sume();
dinamica_triunghi_pascal();
afish();
return 0;
}