Cod sursa(job #358872)

Utilizator prdianaProdan Diana prdiana Data 24 octombrie 2009 19:51:07
Problema Dezastru Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.49 kb
#include <stdio.h>
#define MAXN 32

double p[MAXN],sum;
int n,k,c;

void backrec(int nivel,int st,double val)
{
	int i;
	if (nivel > k)
	{
		sum+=val;
		c++;

	}
	else
	{
		for (i=st;i<=n;i++)
		{
			backrec(nivel+1,i+1,val*p[i]);
		}
	}
}

int main()
{
	int i;
	freopen("dezastru.in","r",stdin);
	freopen("dezastru.out","w",stdout);
	scanf("%d%d",&n,&k);
	for (i=1;i<=n;i++)
	{
		scanf("%lf",&p[i]);
	}

	backrec(1,1,1);

	printf("%.06lf",sum/c);

	return 0;
}