Pagini recente » Cod sursa (job #1043507) | Cod sursa (job #541812) | Cod sursa (job #519857) | Cod sursa (job #1257889) | Cod sursa (job #1300516)
#include <cstdio>
using namespace std;
int n,k,sol[30],i,l,p;
float a[30],nr;
void calc(float &nr)
{
int j;
float x=1;
for(j=1; j<=k; ++j)
x*=a[sol[j]];
nr+=x;
return;
}
bool ok(int l)
{
int j;
bool ok2=true;
for(j=1; j<l; ++j)
if(sol[j]==sol[l])
{
ok2=false;
break;
}
return ok2;
}
void back(int l)
{
int i;
if(l>n)
{calc(nr);++p;}
else
{
for(i=1; i<=n; ++i)
{
sol[l]=i;
if(ok(l))
back(l+1);
}
}
return;
}
int main()
{
freopen("dezastru.in","r",stdin);
freopen("dezastru.out","w",stdout);
scanf("%d %d\n",&n,&k);
for(i=1; i<=n; ++i)
scanf("%f",&a[i]);
nr=0;p=0;
back(1);
printf("%.6f",nr/p);
return 0;
}