Pagini recente » Cod sursa (job #2172468) | Cod sursa (job #1635324) | Cod sursa (job #2733360) | Cod sursa (job #303735) | Cod sursa (job #1747754)
#include <iostream>
#include <cstdio>
using namespace std;
double tri_pasc[30];
double sume[30][30];
double prob[30];
int n,k;
void init()
{
for(int i = 0 ; i <= n ; ++i)
{
sume[i][0] = 1;
}
sume[1][1] = prob[1];
}
void creare_mat()
{
for(int i = 2 ; i <= n ; ++i)
{
for(int j = 1 ; j <= k ; ++j)
{
sume[i][j] = sume[i-1][j] + prob[i] * sume[i-1][j-1];
}
}
}
void pascal()
{
tri_pasc[0] = 1;
for(int i = 1 ; i <= n ; ++i)
{
for(int j = i ; j > 0 ; --j)
{
tri_pasc[j] += tri_pasc[j-1];
}
}
}
void citire()
{
scanf("%d %d\n",&n,&k);
for(int i = 1 ; i <= n ; ++i)
{
scanf("%lf ",&prob[i]);
}
init();
creare_mat();
pascal();
}
int main()
{
freopen("dezastru.in","r",stdin);
freopen("dezastru.out","w",stdout);
citire();
printf("%lf",sume[n][k]/tri_pasc[k]);
return 0;
}