Pagini recente » Istoria paginii home | Cod sursa (job #1603735) | Cod sursa (job #1523902) | Cod sursa (job #2083806) | Cod sursa (job #3125372)
#include <fstream>
#include <iomanip>
using namespace std ;
ifstream cin ("dezastru.in") ;
ofstream cout ("dezastru.out") ;
int n, k, P[27][27] ;
double v[27], dp[27][27] ;
int main()
{
cin >> n >> k ;
for (int i = 1 ; i <= n ; i ++)
cin >> v[i] ;
for (int i = 0 ; i <= n + 1 ; i ++)
{
P[i][0] = P[i][i] = 1 ;
for (int j = 1 ; j < i ; j ++)
P[i][j] = P[i - 1][j - 1] + P[i - 1][j] ;
}
for (int i = 0 ; i <= n ; i ++)
dp[i][0] = 1 ;
for (int i = 1 ; i <= n ; i ++)
for (int j = 1 ; j <= min (i, k) ; j ++)
dp[i][j] = dp[i - 1][j] + dp[i - 1][j - 1] * v[i] ;
cout << setprecision(6) << fixed << dp[n][k] / (double) P[n][k] ;
return 0 ;
}