Pagini recente » Cod sursa (job #2751418) | Cod sursa (job #2798869) | Cod sursa (job #2034724) | Cod sursa (job #2610169) | Cod sursa (job #402837)
Cod sursa(job #402837)
#include<cstdio>
const int maxn = 30;
int i , j , k , n;
double prob[maxn] , total , part ,act;
int comb[maxn][maxn];
double A[maxn][maxn];
void dinamica() {
int i , j ;
for ( i = 1 ; i <= n ; ++i ) {
comb[i][1] = i;
for ( j = 2 ; j <= i ; ++j )
comb[i][j] = comb[i - 1][j] + comb[i - 1][j - 1];
}
for( i = 1 ; i <= n ; ++i ){
A[i][1] = A[i - 1][1] + prob[i];
for( j = 2 ; j <= i ; ++j )
A[i][j] = A[i - 1][j - 1] * prob[i] + A[i - 1][j];
}
}
int main()
{
freopen("dezastru.in","r",stdin);
freopen("dezastru.out","w",stdout);
scanf("%d %d",&n,&k);
for( i = 1 ; i <= n ;++i )
scanf("%lf",&prob[i]);
dinamica();
printf("%.7lf\n",A[n][k] / comb[n][k]);
return 0;
}