Cod sursa(job #491674)

Utilizator stephy_yoyoIonescu Stefania stephy_yoyo Data 11 octombrie 2010 22:48:37
Problema Dezastru Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
# include <cstdio>

float n,k,s,p[30],pr;
int v[30],val[30];

void bkt (int niv)
{
	if (niv==k)
	{
		pr=1;
		for (int i=1;i<=n;i++)
			if (v[i])
				pr*=p[i];
		s+=pr;
	}
	else
		for (int j=(val[niv-1]+1);j<=n;j++)
			if(!v[j]&& j>=(val[niv-1]+1))
			{
				v[j]=1;
				val[niv]=j;
				bkt(niv+1);
				v[j]=0;
			}
}

int main ()
{
	freopen ("dezastru.in","r",stdin);
	freopen ("dezastru.out","w",stdout);
	scanf ("%f%f",&n,&k);
	for (int i=1;i<=n;i++)
		scanf ("%f",&p[i]);
	bkt (0);
	for (int i=(k+1); i<=n;i++)
		s/=i;
	printf ("%f",s);
	return 0;
}