Pagini recente » Monitorul de evaluare | Monitorul de evaluare | Monitorul de evaluare | Monitorul de evaluare | Cod sursa (job #783940)
Cod sursa(job #783940)
#include<cstdio>
using namespace std;
long long Combinations(unsigned int n, unsigned int k)
{
if (k > n)
return 0;
long long r = 1;
for (unsigned int d = 1; d <= k; ++d)
{
r *= n--;
r /= d;
}
return r;
}
int main()
{
freopen("dezastru.in","r",stdin);
freopen("dezastru.out","w",stdout);
int n,k;
float p[30],a[32][32]={0},rez1;
long long rez=1;
scanf("%d %d",&n,&k);
for(int i=1;i<=n;++i)
{
scanf("%f",&p[i]);
}
for(int i=0;i<n;i++)
a[i][0]=a[i][i]=1;
for(int i=1;i<=n;++i)
for(int j=1;j<=i;++j)
{
a[i][j]=(a[i-1][j]+a[i-1][j-1]*p[i]);
}
rez=Combinations(n,k);
//printf("%lld",rez);
rez1=(float)a[n][k]/rez;
printf("%.6f\n",rez1);
return 0;
}