Pagini recente » Cod sursa (job #1560742) | Profil AnisiaZlataru | Cod sursa (job #1990256) | Cod sursa (job #1664071) | Cod sursa (job #1741858)
#include <fstream>
#include <cmath>
#include <vector>
#include <iomanip>
#include <queue>
#include <cstring>
#include <algorithm>
#include <queue>
#include <unordered_set>
#include <set>
#include <map>
#include <stack>
using namespace std;
ifstream cin("tema.in");
ofstream cout("tema.out");
const int MAXN = 25;
double dp[1 + MAXN][1 + MAXN], v[1 + MAXN];
int combinations[1 + MAXN][1 + MAXN];
int main() {
int n, k;
cin >> n >> k;
for (int i = 1; i <= n; i++)
cin >> v[i];
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 - 1] * v[i] + dp[i - 1][j];
}
combinations[0][0] = 1;
for (int i = 1; i <= n; i++) {
combinations[i][0] = 1;
for (int j = 1; j <= i; j++)
combinations[i][j] = combinations[i - 1][j - 1] + combinations[i - 1][j];
}
double answer = dp[n][k] / (double) combinations[n][k];
cout << fixed << setprecision(6) << answer;
return 0;
}