Pagini recente » Cod sursa (job #2104210) | Cod sursa (job #488699) | Cod sursa (job #2641811) | Cod sursa (job #2369815) | Cod sursa (job #43662)
Cod sursa(job #43662)
#include <fstream>
#include <iomanip>
#define MAX 100
using namespace std;
double a[MAX][MAX];
int c[MAX][MAX];
double p[MAX];
int n, k;
int Comb(int n, int k)
{
int &ref = c[n][k];
if (ref) return ref;
else
{
if (!k || !n || n == k) return 1;
ref = Comb(n-1, k) + Comb(n-1, k-1);
return ref;
}
}
int main()
{
ifstream fin("dezastru.in");
ofstream fout("dezastru.out");
fin >> n >> k;
memset(a, 0, sizeof(a));
int sol = Comb(n, k);
for (int i = 1; i <= n; i++)
fin >> p[i];
for (int i = 0; i <= n; i++) a[i][0] = 1;
for (int i = 1; i <= n; i++)
for (int j = 1; j <= i; j++)
a[i][j] = a[i-1][j] + a[i-1][j-1] * p[i];
double t = a[n][k] / (double)sol;
fout << t << setprecision(6) << "\n";
fout.close();
fin.close();
return 0;
}