Pagini recente » Cod sursa (job #1403969) | Clasament simulare_clasa_9_oji | Cod sursa (job #2353085) | Cod sursa (job #1644015) | Cod sursa (job #264771)
Cod sursa(job #264771)
#include<stdio.h>
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)
{
int i;
if (x>k)
{
sum+=calc();
// afis();
return;
}
for(i=sol[x-1]+1;i<=n+x-k;++i)
{
sol[x]=i;
// prodpart*=a[sol[x]];
back(x+1);
// 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);
printf("%lf",sum/prod);
return 0;
}