Pagini recente » Profil Bazagazeal | Cod sursa (job #635489) | Cod sursa (job #2512309) | Cod sursa (job #915148) | Cod sursa (job #733093)
Cod sursa(job #733093)
#include <fstream>
using namespace std;
#define FOR(i,s,d) for( i=(s);i<(d);++i )
#define Dmax 30
double A[Dmax][Dmax],P[Dmax];
double C,Sol;
int N,K;
double comb(int n,int k)
{
double aux=1; int i;
FOR (i,k+1,n+1) aux*=i;
FOR (i,2,n-k+1) aux/=i;
return aux;
}
void Din()
{
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(void)
{
freopen("dezastru.in","r",stdin);
freopen("dezastru.out","w",stdout);
scanf("%d %d",&N,&K);
for (int i=1;i<=N;++i)
scanf("%lf",&P[i]);
C=comb(N,K);
Din();Sol=A[N][K];
Sol/=C;
printf("%lf\n",Sol);
}