Pagini recente » Cod sursa (job #2849443) | Cod sursa (job #2453671) | Cod sursa (job #2482586) | Cod sursa (job #1660747) | Cod sursa (job #339146)
Cod sursa(job #339146)
#include <stdio.h>
#define N 1<<5
int n,k;
double v[N];
double a[N][N];
long long nr=1,nr2=1;
void read()
{
scanf("%d%d",&n,&k);
int i;
for (i=1; i<=n; i++)
scanf("%lf",&v[i]);
}
void solve()
{
int i,j;
for (i=0; i<=n; i++)
a[i][0]=1;
for (i=1; i<=n; i++)
for (j=1; j<=i; j++)
a[i][j]=a[i-1][j]+a[i-1][j-1]*v[i];
if (k>=n-k)
{
for (i=k+1; i<=n; i++)
nr=(long long)nr*i;
for (i=2; i<=n-k; i++)
nr2=(long long)nr2*i;
nr/=nr2;
}
else
{
for (i=n-k+1; i<=n; i++)
nr=(long long)nr*i;
for (i=2; i<=k; i++)
nr2=(long long)nr2*i;
nr/=nr2;
}
printf("%lf",a[n][k]/nr);
}
int main()
{
freopen("dezastru.in","r",stdin);
freopen("dezastru.out","w",stdout);
read();
solve();
return 0;
}