Cod sursa(job #37793)

Utilizator slayer4uVictor Popescu slayer4u Data 25 martie 2007 12:36:10
Problema Dezastru Scor 0
Compilator cpp Status done
Runda preONI 2007, Runda 4, Clasa a 9-a si gimnaziu Marime 0.57 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)
{
	int i;
	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;
}