Pagini recente » Cod sursa (job #468989) | Cod sursa (job #540284) | Cod sursa (job #215886) | Cod sursa (job #2344597) | Cod sursa (job #37773)
Cod sursa(job #37773)
#include <stdio.h>
#include <math.h>
int s[30];
int i,n,m;
double a[30];
double sum;
long long comb=1, fact=1;
void verif()
{
double p=1;
for (int i=1; i<=m; ++i) p*=a[s[i]];
sum+=p/comb;
}
void back(int x)
{
if (x<m)
{
for (int poz=s[x-1]+1; poz<=n; ++poz)
{
s[x]=poz;
back(x+1);
}
}
else
{
for (int poz=s[x-1]+1; poz<=n; ++poz)
{
s[x]=poz;
verif();
}
}
}
int main()
{
freopen("dezastru.in","r",stdin);
freopen("dezastru.out","w",stdout);
scanf("%d %d",&n,&m);
for (i=m+1; i<=n; ++i) comb*=i;
//for (i=1; i<=m; ++i) fact*=i;
//comb/=fact;
for (i=1; i<=n; ++i) scanf("%lf",&a[i]);
back(1);
printf("%.6lf\n",sum);
return 0;
}