Pagini recente » Cod sursa (job #816525) | Cod sursa (job #3001791) | Cod sursa (job #1819) | Cod sursa (job #2363339) | Cod sursa (job #1263603)
#include <iostream>
#include "stdio.h"
using namespace std;
double choose[26] = {0 , 1}, dp[26][26], p[26];
int main() {
freopen("dezastru.in", "r", stdin);
freopen("dezastru.out", "w", stdout);
int n, k;
scanf("%d %d", &n, &k);
for(int i = 1; i <= n;i++){
scanf("%lf", p + i);
}
for(int i = 2; i <= n;i++)
choose[i] = i * choose[i - 1];
for(int i = 0; i <= n;i++)
dp[i][0] = 1;
for(int i = 1; i <= n;i++)
for(int j = 1; j <= n;j++)
dp[i][j] = dp[i-1][j-1] * p[i] + dp[i-1][j];
printf("%.6f", dp[n][k]/(choose[n]/(choose[n-k]*choose[k])));
return 0;
}