Pagini recente » Cod sursa (job #1782320) | Cod sursa (job #794497) | Cod sursa (job #774303) | Cod sursa (job #2344702) | Cod sursa (job #2509985)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("dezastru.in");
ofstream fout("dezastru.out");
int fact(int n)
{
int ans = 1;
for (int i = 1; i <= n; i++) {
ans *= i;
}
return ans;
}
int comb(int n, int k)
{
return fact(n) / (fact(k) * fact(n - k));
}
int main(){
int n, k;
fin >> n;
fin >> k;
vector<double>arr(n+1);
for(int i = 1; i <= n; i++){
fin >> arr[i];
}
vector<vector<double>>dp(n+1, vector<double>(n+1, 0));
for(int i = 0; i <= n; i++) dp[i][0] = 1;
for(int i = 1; i <= n; i++){
for(int j = 1; j <= k; j++){
dp[i][j] = dp[i-1][j-1] * arr[i] + dp[i-1][j];
}
}
fout << fixed << setprecision(6) << dp[n][k] / comb(n,k);
fin.close();
fout.close();
return 0;
}