Pagini recente » Cod sursa (job #2634571) | Cod sursa (job #2116136) | Cod sursa (job #1484381) | Cod sursa (job #1264520) | Cod sursa (job #1367735)
#include<stdio.h>
int v[26], checked[26], n, k, l = 0;
float p[26], all_prob;
void back(int nr_curent)
{
if ( (k < n)? k : n == nr_curent) {
int i;
float prob = 1;
l++;
for (i = 1; i <= k; i++)
prob *= p[v[i]];
all_prob += prob;
return;
}
int i;
for (i = 1; i <= n ; i++) {
if (!checked[i]) {
checked[i] = 1;
v[nr_curent] = i;
back(nr_curent + 1);
checked[i] = 0;
}
}
}
int main(void)
{
FILE *f_in = freopen("dezastru.in", "rt", stdin);
FILE *f_out = freopen("dezastru.out", "wt", stdout);
scanf("%d %d\n", &n, &k);
int i;
for (i = 1; i <= n; i++)
scanf("%f", &p[i]);
back(1);
printf("%f\n", all_prob / l);
}