Pagini recente » Cod sursa (job #893017) | Cod sursa (job #1810709) | Cod sursa (job #1530755) | Cod sursa (job #2882540) | Cod sursa (job #1209790)
#include <stdio.h>
int N, K, nc;
double P[32], prob_sum;
void generate(double p, int n, int k)
{
if (k > K)
{
// Aduna probabilitatea curenta
prob_sum += p;
++nc;
}
else
{
for (int i = n; i <= N - (K - k); ++i)
{
generate(P[i] * p, i + 1, k + 1);
}
}
}
int main()
{
freopen("dezastru.in", "r", stdin);
freopen("dezastru.out", "w", stdout);
scanf("%d %d", &N, &K);
for (int i = 1; i <= N; ++i)
{
scanf("%lf", P + i);
}
generate(1.0, 1, 1);
printf("%.6lf\n", prob_sum / nc);
return 0;
}