Cod sursa(job #229556)

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

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

void back(int in)
{
	int i;
	for (i=1; i<=n; i++)
	{
		if (fol[i]==0)
		{
			st[in]=i;
			fol[i]=1;
			p*=v[st[in]];
			if (in<k) back(in+1);
			else
			{
				P+=p;
				nr++;
                        }
			fol[i]=0;
			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;
}