Pagini recente » Cod sursa (job #3183103) | Cod sursa (job #925136) | Cod sursa (job #2952607) | Cod sursa (job #3280755) | Cod sursa (job #491615)
Cod sursa(job #491615)
#include <iostream>
#include<stdio.h>
int i,j,k,n,nn,p,kk,kkk;
float g;
float v[30];
int w[30];
using namespace std;
double back(int i){
int p;
float x;
int kkk;
//x=1;
if ((kk==k))
{
int y;
x=1;
for (y=1;y<=k;y++)
{
x=x*v[w[y]];
if ((w[y-1]==w[y])or(w[y]<w[y-1]))
x=0;
//printf("%d ",w[y]);
}
//printf("%f \n",x);
if (x!=0)
nn++;
g=g+x;
}
else
{
if (i+k-1<=n){
kk++;
for (p=i;(p<=n);p++)
{
w[kk]=p;
kkk=kk;
//printf("%d %d %d %f %f \n",i,p,kk,g,x);
//if (p+k-2<=n)
back(p);
kk=kkk;
}
}
}
return 0;
}
int main(void)
{
freopen("dezastru.in","r",stdin);
freopen("dezastru.out","w",stdout);
scanf("%d%d\n",&n,&k);
for (i=1;i<=n;i++)
{
scanf("%f",&v[i]);
//printf("%f\n",v[i]);
}
g=0;
back(1);
float ss;
ss=g/nn;
//printf("%f %d\n",g,nn);
printf("%.6f ",ss);
return 0;
}