Pagini recente » Cod sursa (job #2480222) | Cod sursa (job #467391) | Cod sursa (job #1905320) | Cod sursa (job #1904460) | Cod sursa (job #947709)
Cod sursa(job #947709)
#include<stdio.h>
int n,k,v1[30],nfact;
double v[30],suma;
int valid(int x)
{
for(int i=1;i<x;i++)
if(v1[i]==v1[x])
return 0;
return 1;
}
void bk(int x)
{
for(int i=1;i<=n;i++)
{
v1[x]=i;
if(valid(x))
if(x<k)
bk(x+1);
else
if(x==k)
{
double produs=1;
for(int j=1;j<=x;j++)
produs*=v[v1[j]];
for(int j=2;j<=n;j++)
produs/=j;
suma+=produs;
}
}
}
int main()
{
freopen("dezastru.in","r",stdin);
freopen("dezastru.out","w",stdout);
scanf("%d %d",&n,&k);
for(int i=1;i<=n;i++)
scanf("%lf",&v[i]);
bk(1);
printf("%lf ",suma);
return 0;
}