Pagini recente » Cod sursa (job #1237850) | Cod sursa (job #2497693) | Cod sursa (job #2203976) | Cod sursa (job #2081785) | Cod sursa (job #1142195)
#include <iostream>
#include <fstream>
using namespace std;
const int Nmax = 30;
int N, K;
double p[Nmax]; // probabilitatile
double S[Nmax][Nmax]; // suma peste toate produsele din N cite K;
double C[Nmax][Nmax]; // combinari din N cite K;
int main()
{
ifstream f ("dezastru.in");
ofstream g ("dezastru.out");
f >> N >> K;
for (int i = 1; i <= N; i++) f >> p[i];
for (int n = 0; n <= N; n++) {
S[n][0] = 1;
C[n][0] = 1;
}
for (int k = 1; k <= N; k++) {
S[0][k] = 0;
C[0][k] = 0;
}
for (int n = 1; n <= N; n++)
for (int k = 1; k <= n; k++) {
S[n][k] = S[n-1][k] + S[n-1][k-1]*p[n];
C[n][k] = C[n-1][k] + C[n-1][k-1];
}
g << S[N][K] / C[N][K] << endl;
return 0;
}