Cod sursa(job #165013)

Utilizator AndreyPAndrei Poenaru AndreyP Data 25 martie 2008 08:18:25
Problema Dezastru Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include<stdio.h>
float v[30],r;
int sol[30],marcat[30],w;
int n,k;
void preluc()
{
	int i;
	float aux=1;
	for(i=1; i<=k; i++)
		aux*=v[sol[i]];
	r+=aux;
	w++;
}
void back(int x)
{
	if(x==k+1)
	{
		preluc();
		return;
	}
	int i;
	for(i=1; i<=n; i++)
	{
		if(!marcat[i])
		{
			marcat[i]=1;
			sol[x]=i;
			back(x+1);
			marcat[i]=0;
		}
	}
}
int main()
{
	freopen("dezastru.in","r",stdin);
	freopen("dezastru.out","w",stdout);
	int i;
	scanf("%d%d",&n,&k);
	for(i=1; i<=n; i++)
		scanf("%f",&v[i]);
	back(1);
	r=r/w;
	printf("%f\n",r);
	return 0;
}