Pagini recente » Cod sursa (job #3001586) | Cod sursa (job #2668215) | Cod sursa (job #2532710) | Cod sursa (job #1959185) | Cod sursa (job #1095367)
/*
~Keep It Simple!~
*/
#include <stdio.h>
#define MaxN 26
float v[MaxN],M[MaxN][MaxN],A[MaxN][MaxN],Pback,PDyn,cnt;
int st[MaxN],N,K;
void Afisare()
{
float aux=1;
for(int i=1; i<=K; i++)
aux*=v[st[i]];
Pback+=aux;
cnt++;
}
void back(int k)
{
int i;
for(i = st[k-1] + 1; i<=N; i++)
{
st[k] = i;
if( k == K )
{
Afisare();
}
else if( k<K )
back(k+1);
}
}
void ComputeDyn()
{
for(int i=0; i<=N; i++)
M[i][0] = 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-1] + A[i-1][j];
M[i][j] = M[i-1][j] + M[i-1][j-1] * v[i];
}
printf("%f",M[N][K]/A[N][K]);
}
int main()
{
freopen("dezastru.in","r",stdin);
freopen("dezastru.out","w",stdout);
scanf("%d%d",&N,&K);
for(int i=1; i<=N; i++)
scanf("%f",&v[i]);
ComputeDyn();
}