Pagini recente » Istoria paginii runda/gg/clasament | Cod sursa (job #1132842) | Cod sursa (job #1698734) | Cod sursa (job #1494946) | Cod sursa (job #1367731)
#include<stdio.h>
int v[26], checked[26], n, k, l = 0;
float p[26], all_prob;
void back(int nr_curent)
{
if (n == 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);
}