Cod sursa(job #229598)

Utilizator cotofanaCotofana Cristian cotofana Data 10 decembrie 2008 19:53:51
Problema Dezastru Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include <stdio.h>
#define dim 25

int n, k;
float v[dim+1], a[dim+1][dim+1], nr;

float comb(int n, int k)
{
	int i;
	float rez=1;
	for (i=k+1; i<=n; i++) 
	{
		rez*=i;
		if (i-k<=n-k) rez/=i-k;
	}
	return rez;
}

int main()
{
	int i, j;
	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]);
	a[0][0]=1;
	for (i=1; i<=n; i++)
	{
		a[i][0]=1;
		a[i-1][i]=0;
		for (j=1; j<=k; j++)
			a[i][j]=a[i-1][j]+a[i-1][j-1]*v[i];
	}
	nr=comb(n, k);
	printf("%6f\n", a[n][k]/nr);
	return 0;
}