Pagini recente » Cod sursa (job #1803966) | Cod sursa (job #853188) | Cod sursa (job #2413322) | Cod sursa (job #2582900) | Cod sursa (job #2507563)
#include<iostream>
#include<fstream>
#include<algorithm>
using namespace std;
ifstream f("dezastru.in");
ofstream g("dezastru.out");
int n, k;
double probabilitati[35], dp[35][35], X[35];
void init()
{
for(int i = 0; i <= n; i++)
{
probabilitati[i] = 0;
X[i] = 0;
}
for(int i = 0; i <= n ;i++)
for(int j = 0; j <= n; j++)
dp[i][j] = 0;
}
void prelucrare();
void read()
{
f >> n >> k;
init();
for(int i = 1; i <= n; i++)
f >> probabilitati[i];
prelucrare();
}
void show();
void prelucrare()
{
X[0] = 1;
for(int i = 1; i <= n; i++)
X[i] = i * X[i - 1];
dp[0][0] = 1;
for(int i = 1; i<= n; i++)
{
dp[i][0] = 1;
for(int j = 1; j <= i; j++)
dp[i][j] = dp[i - 1][j] + dp[i - 1][j - 1] * probabilitati[i];
}
show();
}
void show()
{
double rez = dp[n][k] * X[k] * X[n - k] / X[n];
g << rez;
}
int main()
{
read();
}