Pagini recente » Cod sursa (job #409252) | Cod sursa (job #1077891) | Cod sursa (job #1031370) | Cod sursa (job #1856676) | Cod sursa (job #2834259)
#include <fstream>
#include <iostream>
#include <iomanip>
using namespace std;
const int N = 26;
double dp [ N ][ N ], v [ N ];
int main ( ) {
ifstream fin ( "dezastru.in" );
ofstream fout ( "dezastru.out" );
int n, i, j, k, k1, r = 1;
fin >> n >> k;
for ( i = 1; i <= n; i++ )
fin >> v [ i ];
for ( i = 0; i <= n; i++ )
dp [ i ][ 0 ] = 1;
for ( i = 1; i <= n; i++ )
for ( j = 1; j <= k; j++ )
dp [ i ][ j ] = dp [ i - 1 ][ j ] + dp [ i - 1 ][ j - 1 ] * v [ i ];
if ( 2 * k < n )
k1 = n - k;
else
k1 = k;
for ( i = k1 + 1; i <= n; i++ )
r = r * i;
for ( i = 1; i <= n - k1; i++ )
r = r / i;
fout << fixed << setprecision ( 6 ) << dp [ n ][ k ] / r;
return 0;
}