Pagini recente » Cod sursa (job #1817567) | Cod sursa (job #1117991) | Cod sursa (job #1647435) | Cod sursa (job #532001) | Cod sursa (job #2451398)
#include <bits/stdc++.h>
using namespace std;
int N, K;
double v[30], fact[30];
double dp[30][30];
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;
}