Cod sursa(job #229561)

Utilizator cotofanaCotofana Cristian cotofana Data 10 decembrie 2008 18:53:48
Problema Dezastru Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include <stdio.h>

int n, k, st[26];
long nr=0;
float v[26], P=0, p=1;

long perm(int k)
{
	long rez=1;
	while (k)
	{
		rez*=k;
		k--;
	}
	return rez;
}

void back(int in)
{
	int i;
	for (i=st[in-1]+1; i<=n; i++)
	{
		st[in]=i;
		p*=v[st[in]];
		if (in<k) back(in+1);
		else
		{
			P+=p;
			nr++;
                }
		p/=v[st[in]];
	}
}

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