Pagini recente » Cod sursa (job #694241) | Cod sursa (job #170815) | Cod sursa (job #589301) | Cod sursa (job #2195787) | Cod sursa (job #1748294)
#include <iostream>
#include <cstdio>
using namespace std;
int n, k, pas[30];
float p[30], dp[30][30];
void citire()
{
scanf("%d %d\n", &n, &k);
for(int i=1; i<=n ; ++i)
scanf("%f ", &p[i]);
}
int pascal()
{
pas[0]=1;
for(int i=1; i<=n; ++i)
{
for(int j=i; j>0; --j)
pas[j]=pas[j]+pas[j-1];
}
return pas[k];
}
void afisare()
{
printf("%f", dp[n][k]/pascal());
}
void rezolvare()
{
for(int i=0; i<=k; ++i)
dp[0][i]=0;
for(int i=0; i<=n; ++i)
dp[i][0]=1;
for(int i=1; i<=n; ++i)
{
for(int j=1; j<=k; ++j)
{
dp[i][j]=dp[i-1][j]+dp[i-1][j-1]*p[i];
}
}
}
int main()
{
freopen("dezastru.in", "r", stdin);
freopen("dezastru.out", "w", stdout);
citire();
rezolvare();
afisare();
return 0;
}