Cod sursa(job #39149)

Utilizator slayer4uVictor Popescu slayer4u Data 26 martie 2007 14:38:13
Problema Dezastru Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.56 kb
#include<stdio.h>
long double sol[3001],x[3001],sum,n,num;
long step,k,nsol,st[31],nr,i;
void back(int step)
{
	if (step-1==k)	
	{
		sol[++nsol]=1;
		for (int i=1;i<=k;i++)
			sol[nsol]*=x[st[i]];
		sum+=sol[nsol];
		num++;
	}
	else
	{
		for (int c=st[step-1]+1;c<=nr;c++)
		{
				st[step]=c;
				back(step+1);
		}
	}
}
int main()
{
	freopen ("dezastru.in","rt",stdin);
	freopen ("dezastru.out","wt",stdout);

	scanf("%ld %ld",&nr,&k);

	for (i=1;i<=nr;i++)
		scanf("%Lf",&x[i]);

	back(1);

	printf("%.6Lf\n",sum/num);
	return 0;
}