Pagini recente » Cod sursa (job #2361242) | Cod sursa (job #2237430) | Cod sursa (job #1804235) | Cod sursa (job #2239830) | Cod sursa (job #1649798)
#include<stdio.h>
double v[25];
int n,p,st[25];
double afisare () {
int i;
float rez=1;
for(i=1;i<=p;i++)
rez=rez*v[st[i]];
return rez;
}
int valid ( int k ){
int pp=1,i;
for(i=k-1;i>=1&&pp==1;i--)
if(st[k]==st[i])
pp=0;
return pp;
}
void bkt ( int k ,double &s){
int i;
if(k==p+1)
s=s+afisare();
else
for(i=1;i<=n;i++){
st[k]=i;
if(valid(k)==1)
bkt(k+1,s);
}
}
int main(){
int i,cate;
double s=0;
freopen("dezastru.in","r",stdin);
freopen("dezastru.out","w",stdout);
scanf("%d%d",&n,&p);
for(i=1;i<=n;i++)
scanf("%lf",&v[i]);
bkt(1,s);
cate=1;
for(i=n-p+1;i<=n;i++)
cate=cate*i;
printf("%lf\n",s/cate);
return 0;
}