Pagini recente » Cod sursa (job #2702363) | Cod sursa (job #2507367) | Cod sursa (job #2964015) | Cod sursa (job #2313085) | Cod sursa (job #690139)
Cod sursa(job #690139)
#include <cstdio>
double a[26];
int cmb[26];
int valid(int pc,int n,int k){
if(pc>k)return 0;
if(cmb[pc]>n)return 0;
if(cmb[pc]<=cmb[pc-1])return 0;
return 1;
}
int main () {
int n,k,i,pc=1,c=0;
double sp=0,pp;
freopen("dezastru.in","r",stdin);
freopen("dezastru.out","w",stdout);
scanf("%d %d",&n,&k);
for(i=1;i<=n;++i)scanf("%lf",&a[i]);
for(;pc>0;){
if(cmb[pc]==0) cmb[pc]=cmb[pc-1]+1;
else ++cmb[pc];
if(valid(pc,n,k)){
if(pc==k){
pp=1;
++c;
for(i=1;i<=k;++i){
pp*=a[cmb[i]];
}
sp+=pp;
}
++pc;
}
else
if(cmb[pc]>n){
cmb[pc]=0;
--pc;
}
}
printf("%lf",sp/c);
return 0;
}