Pagini recente » Cod sursa (job #847160) | Cod sursa (job #644173) | Cod sursa (job #295270) | Cod sursa (job #1960345) | Cod sursa (job #2495903)
#include <bits/stdc++.h>
std::ifstream input ("dezastru.in");
std::ofstream output("dezastru.out");
#define MAXN 30
#define num double
#define llg long long
int N, K;
num DP[MAXN][MAXN], fact[MAXN];
std::vector <num> V;
int main()
{
input >> N >> K;
V.resize(N);
for (auto &it:V) input >> it;
fact[0] = 1;
for (int i=1; i<=N; ++i) fact[i] = fact[i-1]*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] + DP[i-1][j-1]*V[i-1]);
} output << std::fixed << std:;setprecision(12) << DP[N][K]*fact[K]*fact[N-K]/fact[N];
return 0;
}