Cod sursa(job #407713)

Utilizator drujbarultudorTudor Mihai Munteanu drujbarultudor Data 2 martie 2010 16:29:04
Problema Dezastru Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.52 kb
#include <cstdio>
int n,k,nr=0;
float v[26],s=0;
int st[30],is[30];
int found_sol;

void  back (int p)
{
	int i,c;
	float h;
	h=1;
	if(p==k+1)
	{
		nr=nr+1;
	for (i=1;i<=k;i++)
		h=h*v[st[i]];
	s=s+h;
	}
	else 
	{
		for (c=1;c<=n;c++)
			if (!is[c])
			{
				st[p]=c;
				is[c]=1;
				back(p+1);
				is[c]=0;
			}
	}
}
int main ()
{
	freopen ("dezastru.in","r",stdin);
	freopen ("dezastru.out","w",stdout);
	scanf("%d%d",&n,&k);
	for (int i=1;i<=n;i++)
		scanf("%f",&v[i]);
	back (1);
	printf("%f\n",s /(float) nr);
	return 0;
}