Pagini recente » Cod sursa (job #760580) | Cod sursa (job #679214) | Cod sursa (job #17931) | Cod sursa (job #890015) | Cod sursa (job #39085)
Cod sursa(job #39085)
#include <stdio.h>
#define input "dezastru.in"
#define output "dezastru.out"
#define nmax 30
long i,n,k,st[nmax];
float v[nmax],sum;
long cnt;
void citire()
{
FILE *fin;
fin=fopen(input,"r");
fscanf(fin,"%ld %ld",&n,&k);
for (i=1;i<=n;i++)
fscanf(fin,"%f",&v[i]);
fclose(fin);
}
inline void back(int niv, float prod)
{
for (register int i=st[niv-1]+1;i<=n;i++)
{
st[niv]=i;
if (niv==k) {cnt+=1; sum+=prod*v[i];}
else back(niv+1,prod*v[i]);
}
}
void solve()
{
cnt=0; sum=0;
back(1,1);
}
void afisare()
{
FILE *fout;
fout=fopen(output,"w");
fprintf(fout,"%.7f",sum/cnt);
fclose(fout);
}
int main()
{
citire();
solve();
afisare();
return 0;
}