Pagini recente » Cod sursa (job #826488) | Cod sursa (job #3273456) | Cod sursa (job #43704) | Cod sursa (job #1485562) | Cod sursa (job #37832)
Cod sursa(job #37832)
#include <stdio.h>
const int N_MAX = 32;
int N, K, nr = 0;
long double v[N_MAX], S = 0;
int st[N_MAX];
void back(int k, long double s)
{
if (k == K + 1) {
S += s;
nr ++;
} else {
for (int c = st[k - 1] + 1; c <= N - K + k; c ++) {
st[k] = c;
back(k + 1, s * v[c]);
}
}
}
int main()
{
freopen("dezastru.in", "r", stdin);
#ifndef _KKT_
freopen("dezastru.out", "w", stdout);
#endif
int i;
scanf("%d %d\n", &N, &K);
for (i = 1; i <= N; i ++) {
scanf("%Lf ", &v[i]);
}
back(1, 1);
/* for (j = K + 1; j <= N; j ++) {
// printf("%Lf\n", S);
S /= j;
}
*/
// printf("%d\n", nr);
printf("%0.6Lf\n", S / nr);
return 0;
}