Pagini recente » Cod sursa (job #858615) | Cod sursa (job #2736703) | Cod sursa (job #2465285) | Cod sursa (job #2263015) | Cod sursa (job #1838848)
#include <cstdio>
#define MAXN 26
using namespace std;
double p[MAXN], a[MAXN][MAXN], ans;
unsigned long long nfact, nkfact;
int main()
{
freopen("dezastru.in", "r", stdin);
freopen("dezastru.out", "w", stdout);
int i, n, k, j;
scanf("%d%d", &n, &k);
for(i=1; i<=n; ++i)
scanf("%lf", &p[i]);
a[1][1] = p[1];
a[1][0] = 1;
for(i=2; i<=n; ++i)
{
a[2][0] = 1;
for(j=1; j<=k; ++j)
a[i][j] = a[i-1][j] + p[i]*a[i-1][j-1];
}
nfact = nkfact = 1;
for(i=k+1; i<=n; ++i) nfact *= i;
for(i=1; i<=n-k; ++i) nkfact *= i;
printf("%lf", a[n][k]*(1.0*nkfact/nfact));
return 0;
}