Cod sursa(job #410995)

Utilizator EugenStoicaEugen Stoica EugenStoica Data 4 martie 2010 17:57:35
Problema Dezastru Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include<stdio.h>
int n,m;
double v[26];
int st[32];
double sttot;
int c;

void sol()
{
	double p=1;
	for(int i=1;i<=m;i++)
		p*=v[st[i]];
	sttot+=p;
	c++;
}

void back()
{
	int up,k;
	k=1;st[k]=0;
	while(k)
	{
		up=0;
		while(!up&&st[k]<n)
		{
			st[k]++;
			up=1;
		}
		if(up)
			if(k==m)sol();
			else k++,st[k]=st[k-1];
		else k--;
	}
}

int main()
{
	freopen("dezastru.in","r",stdin);
	freopen("dezastru.out","w",stdout);
	int i;
	scanf("%d%d",&n,&m);
	for(i=1;i<=n;i++)
		scanf("%lf",&v[i]);
	back();
	printf("%.6lf",sttot/c);
	return 0;
}