Pagini recente » Diferente pentru home intre reviziile 263 si 264 | Monitorul de evaluare | Cod sursa (job #133345) | Cod sursa (job #1091346) | Cod sursa (job #831738)
Cod sursa(job #831738)
#include <cstdio>
#include <cstring>
int n, k, nr;
double res = 0.0;
double v[25];
inline void back(int l, double p, int last)
{
if (l == k + 1) {
res += p;
nr++;
} else {
for (int i = last + 1; i <= n - k + l; ++i)
back(l + 1, p * v[i], i);
}
}
int main()
{
freopen("dezastru.in", "r", stdin);
freopen("dezastru.out", "w", stdout);
scanf("%d %d", &n, &k);
for (int i = 1; i <= n; ++i)
scanf("%lf", &v[i]);
back(1, 1, 0);
printf("%lf\n", res / nr);
return 0;
}