Pagini recente » Cod sursa (job #2442812) | Cod sursa (job #1506765) | Cod sursa (job #1981458) | Cod sursa (job #2721887) | Cod sursa (job #264720)
Cod sursa(job #264720)
#include<stdio.h>
int n,k,sol[30],prod=1;
double a[30],sum=0;
void afis()
{
int i;
for(i=1;i<=k;++i)
printf("%d ",a[sol[i]]);
printf("\n");
}
void fact()
{
int x=0,i;
for(i=k+1;i<=n;++i)
{
x++;
prod*=i;
// printf("%d", prod);
if (x<=n-k)
if(prod%x==0)
prod=prod/x;
}
}
double calc()
{
int i;
double prodpart=1;
for(i=1;i<=k;++i)
prodpart=prodpart*a[sol[i]];
return prodpart;
}
void back(int x)
{
int i;
if (x==k+1)
{
sum+=calc();
// afis();
return;
}
for(i=sol[x-1]+1;i<=n;++i)
{
sol[x]=i;
back(x+1);
}
}
int main()
{
int i;
freopen("dezastru.in","r",stdin);
freopen("dezastru.out","w",stdout);
scanf("%d%d",&n,&k);
for(i=1;i<=n;++i)
scanf("%lf",&a[i]);
// for(i=1;i<=n;++i)
// printf("%lf ",a[i]);
fact();
// printf("%d ",prod);
back(1);
printf("%lf ",sum/prod);
return 0;
}