Pagini recente » Cod sursa (job #707002) | Cod sursa (job #1848708) | Cod sursa (job #1113461) | Cod sursa (job #2245868) | Cod sursa (job #698792)
Cod sursa(job #698792)
#include<stdio.h>
FILE *f=fopen("dezastru.in","r"), *g=fopen("dezastru.out","w");
int st[30], n, k, cnt;
float v[30], r;
int valid(int niv)
{
for(int i=1;i<niv;i++)
if(st[i]==st[niv])
return 0;
return 1;
}
void sol()
{
float p=1;
for(int i=1;i<=k;i++)
p=p*v[st[i]];
r+=p;
cnt++;
}
void bk(int niv)
{
for(int i=st[niv-1]+1;i<=n;i++)
{
st[niv]=i;
if(valid(niv))
if(niv==k)
sol();
else bk(niv+1);
}
}
void cit()
{
fscanf(f,"%d %d", &n, &k);
for(int i=1;i<=n;i++)
fscanf(f,"%f", &v[i]);
}
int main()
{
cit();
bk(1);
fprintf(g,"%.6f", r/cnt);
return 0;
}