Cod sursa(job #354001)

Utilizator Alexa_ioana_14Antoche Ioana Alexandra Alexa_ioana_14 Data 6 octombrie 2009 21:22:35
Problema Dezastru Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include<cstdio>
#define N 26
short int n,k,sol[N],inceput;
double v[N],prod,g;
bool viz[N];
void citire()
{
	freopen("dezastru.in","r",stdin);
	freopen("dezastru.out","w",stdout);
	scanf("%hd%hd",&n,&k);
	for (short int i=1; i<=n; ++i)
		scanf("%lf",&v[i]);
}
void back(short int p)
{
	if (p==k+1)
	{
		if (sol[k]==k)
			++inceput;
		g=1;
		for (short int i=1; i<=k; ++i)
			g*=v[sol[i]];
		v[0]+=g;
		return;
	}
	for (int i=1; i<=n; ++i)
		if (!viz[i]&&sol[p-1]<i)
		{
			viz[i]=true;
			sol[p]=i;
			back(p+1);
			viz[i]=false;
			if (i>inceput)
				viz[i]=false;
		}
}
int main()
{
	citire();
	prod=1;
	
	back(1);
	for (int i=n; i>k;--i)
		v[0]/=i;
	//prod=v[0]/prod;
	printf("%.6lf",v[0]);
	return 0;
}