Pagini recente » Cod sursa (job #1121270) | Cod sursa (job #2168584) | Cod sursa (job #981217) | Cod sursa (job #3337057) | Cod sursa (job #641242)
Cod sursa(job #641242)
#include <stdio.h>
#define IN "dezastru.in"
#define OUT "dezastru.out"
#define N 26
double p[N], total;
int sol[N], pus[N], n, k;
unsigned long long nf;
void calcul(int);
int main(void) {
int i;
freopen(IN, "r", stdin); freopen(OUT, "w", stdout);
scanf("%d %d", &n, &k);
for(i = 1; i <= n; ++i)
scanf("%lf", &p[i]);
calcul(1);
printf("%.6f\n", total / nf);
return 0;
}
void calcul(int m) {
int i;
double aux;
if(m == k + 1) {
aux = 1;
for(i = 1; i <= k; ++i)
aux *= p[sol[i]];
total += aux;
++nf;
} else {
for(i = 1; i <= n; ++i) {
if(!pus[i]) {
sol[m] = i;
pus[i] = 1;
calcul(m + 1);
pus[i] = 0;
}
}
}
}