Pagini recente » Cod sursa (job #659057) | Cod sursa (job #2910904) | Cod sursa (job #1368286) | Cod sursa (job #2643929) | Cod sursa (job #229572)
Cod sursa(job #229572)
#include <stdio.h>
int n, k, st[26]={0};
long nr=0;
float v[26], P=0, p=1, P2=1;
void back(int in, int op)
{
int i, n2;
if (op==2) n2=n-k;
else n2=k;
for (i=st[in-1]+1; i<=n; i++)
{
st[in]=i;
p*=v[st[in]];
if (in<n2) back(in+1, op);
else
{
if (op==1) P+=p;
else P+=P2/p;
nr++;
}
p/=v[st[in]];
}
}
int main()
{
int i;
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]);
P2*=v[i];
}
if (k>n/2) back(1, 2);
else back(1, 1);
printf("%6f\n", P/nr);
return 0;
}