Pagini recente » Cod sursa (job #2439042) | Cod sursa (job #968967) | Cod sursa (job #2012537) | Cod sursa (job #2261301) | Cod sursa (job #3267952)
#include <bits/stdc++.h>
using namespace std;
ifstream f("dezastru.in");
ofstream g("dezastru.out");
const int MAX_N = 25;
int x[MAX_N + 1];
double p[MAX_N + 1], rez, crt;
long long nr;
int n, k;
bool ok;
int main()
{
f >> n >> k;
for (int i = 1; i <= n; i++)
f >> p[i];
crt = 1.0;
for (int i = 1; i <= k; i++)
{
x[i] = i;
crt *= p[x[i]];
}
rez += crt;
++nr;
ok = 1;
while (ok)
{
int i = k;
while (x[i] == n - k + i && i > 0)
i--;
if (i == 0)
ok = 0;
else
{
x[i]++;
for (int j = i + 1; j <= k; j++)
x[j] = x[j - 1] + 1;
crt = 1.0;
for (int j = 1; j <= k; j++)
crt *= p[x[j]];
rez += crt;
++nr;
}
}
rez = (double) rez / nr;
g << fixed << setprecision(6) << rez << '\n';
f.close();
g.close();
return 0;
}