Pagini recente » Cod sursa (job #28505) | Cod sursa (job #2228657) | Cod sursa (job #127442) | Cod sursa (job #1297338) | Cod sursa (job #134228)
Cod sursa(job #134228)
#include <stdio.h>
#define Nmax 26
double a[Nmax], rez;
int i, st[Nmax], n, k;
long long imp, inm;
void bkt(int i)
{
if (i>k)
{
double temp=1;
for (int j=1; j<=k; j++) temp*=a[st[j]];
rez+=temp*inm;
}
else
{
for (int j=st[i-1]+1; j<=n; j++)
{
st[i]=j;
bkt(i+1);
}
}
}
int main()
{
freopen("dezastru.in", "r", stdin);
scanf("%d %d\n", &n, &k);
for (i=1; i<=n; i++)
scanf("%lf ", &a[i]);
fclose(stdin);
freopen("dezastru.out", "w", stdout);
for (imp=1, i=1; i<=n; i++) imp*=i;
for (inm=1, i=1; i<=k; i++) inm*=i;
bkt(1);
printf("%.6lf", rez/imp);
fclose(stdout);
return 0;
}