Pagini recente » Cod sursa (job #1133486) | Cod sursa (job #1620074) | Cod sursa (job #2038076) | Cod sursa (job #71464) | Cod sursa (job #2130130)
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream in("dezastru.in");
ofstream out("dezastru.out");
const int Nmax = 25;
void Comb (int k, int&n, int&m, int&w, double&rez, vector<int>&c, vector<double>&v)
{
if (k == m + 1)
{
double q = 1;
for (int i = 1; i <= m; i++)
q = q * v[c[i]];
rez = rez + 2 * (q / w);
return;
}
for (int i = c[k - 1] + 1; i <= n - m + k; i++)
{
c[k] = i;
Comb(k + 1, n, m, w, rez, c, v);
}
}
int main()
{
int n, m;
double rez = 0;
vector<int> c(Nmax);
vector<double> v(Nmax);
in >> n >> m;
int w = (n * (n + 1)) / 2;
for (int i = 1; i <= n; i++)
in >> v[i];
Comb(1, n, m, w, rez, c, v);
out << rez;
}