Pagini recente » Cod sursa (job #1289992) | Cod sursa (job #2611841) | Cod sursa (job #2943985) | Cod sursa (job #2448262) | Cod sursa (job #1759170)
#include <fstream>
#include <algorithm>
#include <iomanip>
#include <string.h>
using namespace std;
double v[30], dp[30][30];
double comb(int n, int k){
int i;
double ans = 1;
for(i = k+1;i <= n;i++){
ans *= i;
}
for(i = 2;i <= n-k;i++){
ans *= i;
}
return ans;
}
int main()
{
ifstream fin("dezastru.in");
ofstream fout("dezastru.out");
int n,k,j,i;
fin>>n>>k;
for(i = 1;i <= n;i++){
fin>>v[i];
}
for(i = 0;i <= n;i++){
dp[i][0] = 1;
}
dp[1][1] = v[1];
for(i = 2;i <= n;i++){
for(j = 1;j <= k;j++){
dp[i][j] = dp[i-1][j] + v[i] * dp[i-1][j-1];
}
}
fout<<fixed<<setprecision(7)<<dp[n][k]/comb(n, max(k, n-k));
return 0;
}