Pagini recente » Cod sursa (job #1463953) | Cod sursa (job #426968) | Cod sursa (job #2828445) | Cod sursa (job #2099367) | Cod sursa (job #481512)
Cod sursa(job #481512)
#include <stdio.h>
typedef long long tipus;
typedef long double tipus2;
tipus v[26],n,k,kfact,nmkfact,nfact;
tipus2 a[26],ossz=0;
tipus fact(tipus k){
tipus i,temp=1;
for(i=2;i<=k;i++){
temp=temp*i;}
return temp;
}
void osszead(){
tipus2 temp=1;
tipus i;
for(i=1;i<=k;i++){temp=temp*a[v[i]];}
ossz+=((temp/nfact)*kfact*nmkfact);
}
void back(tipus p){
tipus i;
for(i=v[p-1]+1;i<=n;i++){
v[p]=i;
if(p==k){osszead();}else{back(p+1);}
}
}
int main(){
freopen("dezastru.in","r",stdin);
freopen("dezastru.out","w",stdout);
tipus i;
scanf("%lld %lld",&n,&k);
for(i=1;i<=n;i++){scanf("%Lf",&a[i]);}
kfact=fact(k);
nfact=fact(n);
nmkfact=fact(n-k);
back(1);
printf("%.6Lf",ossz);
return 0;
}