Pagini recente » Cod sursa (job #2859319) | Cod sursa (job #879617) | Cod sursa (job #3262431) | Cod sursa (job #848850) | Cod sursa (job #479536)
Cod sursa(job #479536)
#include <stdio.h>
#include <algorithm>
#include <time.h>
#define NMax 25
using namespace std;
const char IN[] ="dezastru.in";
const char OUT[] ="dezastru.out";
typedef long long ll;
int N,K,Nr;
float a[NMax+1];
float M[NMax+1][NMax+1];
double s;
void rez()
{
int i,j;
M[1][1]=a[1];
for (i=0;i<=N;i++)
M[i][0]=1;
for (i=2;i<=N;i++)
for (j=1;j<=K && j<=i;j++)
M[i][j]= a[i]*M[i-1][j-1] + M[i-1][j];
s=M[N][K];
}
ll comb(ll n,ll k)
{
int i;
ll x=1;
for (i=1;i<=k;i++)
{
x= x*(n-i+1)/i;
}
return x;
}
void citire()
{
int i;
freopen(IN,"r",stdin);
scanf("%d%d",&N,&K);
for (i=1;i<=N;i++)
scanf("%f",&a[i]);
fclose(stdin);
}
void scriere()
{
printf("%.2f\n",clock()/(float)CLOCKS_PER_SEC);
freopen(OUT,"w",stdout);
printf("%.6lf\n",s);
fclose(stdout);
}
int main()
{
citire();
rez();
s= s /(int)( comb(N,K));
scriere();
return 0;
}