Pagini recente » Cod sursa (job #2540796) | Cod sursa (job #2546293) | Cod sursa (job #687478) | Cod sursa (job #2608395) | Cod sursa (job #1960202)
#include <fstream>
#include <iostream>
#include <iomanip>
#include <algorithm>
#include <vector>
#define MAX_N 50
using namespace std;
int n;
int k;
double v[MAX_N];
double M[MAX_N][MAX_N];
int main()
{
ifstream in("dezastru.in");
ofstream out("dezastru.out");
in >> n >> k;
for (int i = 1; i <= n; i++) {
in >> v[i];
M[i][0] = 1;
}
M[0][0] = 1;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= i; j++) {
M[i][j] = M[i - 1][j - 1] * v[i] + M[i - 1][j];
}
}
/*for (int i = 0; i <= n; i++) {
for (int j = 0; j <= i; j++) {
cout << M[i][j] << " ";
} cout << endl;
} cout << endl;*/
double sum = M[n][k];
//cout << sum << endl;
double divisor = 1;
for (int i = k + 1; i <= n; i++) divisor *= i;
for (int i = 2; i <= n - k; i++) divisor /= i;
out << setprecision(6) << sum / divisor << "\n";
return 0;
}