Pagini recente » Cod sursa (job #46991) | Cod sursa (job #434206) | Cod sursa (job #265136) | Cod sursa (job #747443) | Cod sursa (job #2509986)
#include <fstream>
#include<vector>
#include<iomanip>
using namespace std;
ifstream fin("dezastru.in");
ofstream fout("dezastru.out");
int comb(int n, int k){
if(k > n) return 0;
if(k == 0) return 1;
return (comb(n-1, k) + comb(n-1, k-1));
}
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;
}