Pagini recente » Cod sursa (job #2440257) | Cod sursa (job #2437384) | Cod sursa (job #2687381) | Cod sursa (job #1619638) | Cod sursa (job #2451394)
#include <bits/stdc++.h>
using namespace std;
int N, K;
double v[25], fact[25];
double dp[25][25];
inline int read(){
scanf("%d %d", &N, &K);
for(int i = 1; i <= N; i++)
scanf("%lf ", &v[i]);
}
inline createfact(){
fact[0] = 1;
for(int i = 1; i <= N; i++)
fact[i] = fact[i - 1] * i;
}
int main(){
freopen("dezastru.in", "r", stdin);
freopen("dezastru.out", "w", stdout);
read();
createfact();
dp[0][0] = 1;
for(int i = 1; i <= N; i++){
dp[i][0] = 1;
for(int j = 1; j <= i; j++)
dp[i][j] = dp[i - 1][j] + v[i] * dp[i - 1][j - 1];
}
printf("%f", dp[N][K] / (fact[N] / (fact[K] * fact[N - K])));
return 0;
}