Pagini recente » Cod sursa (job #952708) | Monitorul de evaluare | Cod sursa (job #3133393) | Cod sursa (job #3357590) | Cod sursa (job #775301)
Cod sursa(job #775301)
#include <cstdio>
#include <cstdlib>
using namespace std;
double A[31][31], P[31], comb, sol;
int N, K;
double cmb(int n, int k)
{
double res = 1;
int i;
for(i = k + 1; i <= n; i++) res *= i;
for(i = 2; i <= n - k; i++) res /= i;
return res;
}
void dinamica()
{
A[0][0] = 1;
for(int i = 1; i <= N; i++)
{
A[i][0] = 1;
for(int j = 1; j <= K; j++)
A[i][j] = A[i - 1][j] + A[i - 1][j - 1] * P[i];
}
}
int main()
{
freopen("dezastru.in", "r", stdin);
freopen("dezastru.out", "w", stdout);
int i;
scanf("%i %i", &N, &K);
for(i = 1; i <= N; i++) scanf("%lf", &P[i]);
comb = cmb(N, K);
dinamica();
sol = A[N][K] / comb;
printf("%lf\n", sol);
return 0;
}