Pagini recente » Cod sursa (job #2984332) | Cod sursa (job #1389462) | Cod sursa (job #1513606) | Cod sursa (job #969785) | Cod sursa (job #1310801)
#include <stdio.h>
double a[26],sum;
bool vis[26];
int b[26];
int n,k,ct;
double swap(double a,double b)
{
double temp;
temp=a;
a=b;
b=temp;
}
void ver()
{
ct++;
double p=1;
for(int i=0;i<k;i++)
{
p*=a[b[i]];
}
sum+=p;
}
void permute(int i)
{
if (i == n) ver();
else
{
for(int j=0;j<n;j++)
{
if(vis[j]==0)
{
vis[j]=1;
b[i]=j;
permute(i+1);
vis[j]=0;
}
}
}
}
int main()
{
freopen ("dezastru.in","r",stdin);
freopen ("dezastru.out","w",stdout);
scanf("%d%d",&n,&k);
for(int i=0;i<n;i++)
{
scanf("%lf",&a[i]);
}
permute(0);
printf("%.6lf\n",sum/ct);
return 0;
}