Pagini recente » Cod sursa (job #1763423) | Cod sursa (job #3261031) | Cod sursa (job #1129801) | Cod sursa (job #2824093) | Cod sursa (job #1756174)
#include <iostream>
#include <cstdio>
#define NMAX 26
using namespace std;
int N,K;
float dp[NMAX],v[NMAX];
int pascal[NMAX];
void citire()
{
scanf("%d%d",&N,&K);
for(int i=1; i<=N; i++)
scanf("%ff",&v[i]);
}
void init_pascal()
{
pascal[0]=1;
for(int n=1; n<=N; n++)
for(int k=N; k>=0; k--)
pascal[k]= pascal[k-1] + pascal[k];
}
void init_dp()
{
dp[0]=1;
}
void rezolvare()
{
dp[1]=v[1];
for(int i=2;i<=N;i++)
for(int k=min(K,i);k>=1;k--)
dp[k]=dp[k]+dp[k-1]*v[i];
cout<<dp[K]/pascal[K];
}
int main()
{
freopen("dezastru.in","r",stdin);
freopen("dezastru.out","w",stdout);
citire();
init_dp();
init_pascal();
rezolvare();
return 0;
}