Pagini recente » Clasament marte20 | Clasament gm_11-12_sim | Cod sursa (job #2363695) | Cod sursa (job #1333620) | Cod sursa (job #91749)
Cod sursa(job #91749)
#include<stdio.h>
float pr[32], sol;
int st[32], sel[32], nr, n, k;
void proc()
{
int i;
float temp=1;
for (i=1; i<=k; i++)
temp*=pr[st[i]];
sol+=temp;
}
void back(int nivel)
{
if (nivel>k) {proc(); ++nr; return;}
int i;
for (i=st[nivel-1]+1; i<=n; i++)
{
if (!sel[i])
{
sel[i]=1;
st[nivel]=i;
back(nivel+1);
sel[i]=0;
}
}
}
int main()
{
freopen("dezastru.in", "r", stdin);
freopen("dezastru.out", "w", stdout);
int i;
float ss=1;
scanf("%d %d", &n, &k);
for (i=1; i<=n; i++)
scanf("%f", &pr[i]);
back(1);
ss=ss/nr;
printf("%f", ss*sol);
return 0;
}