Pagini recente » Cod sursa (job #90133) | Cod sursa (job #198115) | Cod sursa (job #183809) | Cod sursa (job #67238) | Cod sursa (job #134226)
Cod sursa(job #134226)
#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)/imp;
}
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\n", rez);
fclose(stdout);
return 0;
}