Pagini recente » Cod sursa (job #597735) | Cod sursa (job #3237742) | Cod sursa (job #1980903) | Cod sursa (job #2946172) | Cod sursa (job #265166)
Cod sursa(job #265166)
#include<cstdio>
int n,k,sol[30],prod=1;
double a[30],sum=0,prodpart=1;
void afis()
{
for(int i=1;i<=k;++i)
printf("%lf ",a[sol[i]]);
printf("\n");
}
void fact()
{
int x=0,i;
for(i=k+1;i<=n;++i)
{
x++;
prod*=i;
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,double q)
{
int i;
if (x==k+1)
{
sum+=q;
// afis();
return;
}
for(i=sol[x-1]+1;i<=n+x-k;++i)
{
// prodpart*=a[sol[x]];
back(x+1,q*a[i]);
// prodpart/=a[sol[x]];
}
}
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,1);
printf("%lf",sum/prod);
return 0;
}