Pagini recente » Cod sursa (job #3195615) | Cod sursa (job #2627736) | Cod sursa (job #1679785) | Cod sursa (job #2654969) | Cod sursa (job #1367732)
#include<stdio.h>
int v[26], checked[26], n, k, l = 0;
float p[26], all_prob;
void back(int nr_curent)
{
if (k+1 == nr_curent) {
int i;
float prob = 1;
l++;
for (i = 1; i <= k; i++)
prob *= p[v[i]];
all_prob += prob;
}
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);
}