Pagini recente » Cod sursa (job #2468251) | Cod sursa (job #2622819) | Cod sursa (job #2924682) | Cod sursa (job #2359373) | Cod sursa (job #1567613)
#include<fstream>
using namespace std;
ifstream fin("dezastru.in");
ofstream fout("dezastru.out");
const int NMAX = 26;
int n, k;
double v[NMAX], sol[NMAX + 3][NMAX + 3];
double comb(double m, double q)
{
if (q * 2 > n) q = m - q;
if (!q) return 1;
double rez = m;
for(double i = 2; i <= q; ++i ) {
rez *= m - i + 1;
rez /= i;
}
return rez;
}
int main()
{
fin >> n >> k;
for(int i = 1; i <= n; ++i)
fin >> v[i];
sol[2][0] = sol[1][0] = 1; sol[1][1] = v[1];
for(int i = 2; i <= n; ++i, sol[i][0] = 1)
for(int j = 1; j <= k; ++j)
sol[i][j] = sol[i-1][j] + v[i] * sol[i-1][j-1];
fout << sol[n][k] / comb(n, k) << '\n';
return 0;
}