Pagini recente » Cod sursa (job #3149050) | Cod sursa (job #2675038) | Cod sursa (job #2765420) | Cod sursa (job #2768281) | Cod sursa (job #2778031)
#include <fstream>
#include <iomanip>
using namespace std;
ifstream fin( "dezastru.in" );
ofstream fout( "dezastru.out" );
const int LIM = 30;
double sum[LIM][LIM], p[LIM];
int C[LIM][LIM];
int main() {
int n, k;
fin >> n >> k;
for ( int i = 1; i <= n; ++i ) {
fin >> p[i];
sum[i][1] = sum[i-1][1] + p[i];
C[i][1] = i;
C[i][0] = 1;
}
for ( int i = 2; i <= n; ++i ) {
for ( int j = 2; j <= k; ++j ) {
sum[i][j] = sum[i-1][j] + sum[i-1][j-1] * p[i];
C[i][j] = C[i-1][j] + C[i-1][j-1];
}
}
fout << setprecision(6) << fixed << sum[n][k] / C[n][k];
fin.close();
fout.close();
return 0;
}