Cod sursa(job #482324)

Utilizator borsoszalanBorsos Zalan borsoszalan Data 3 septembrie 2010 09:43:24
Problema Dezastru Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include<stdio.h>
#define MAXN 30

int n,k;
float val[MAXN],dp[MAXN][MAXN];
int fact[MAXN][MAXN];

void factorial()
{
	int i,j;
	for(i=1;i<=n;i++)
		{
			fact[i][1]=i;
			for(j=2;j<=k;j++)
				fact[i][j]=i*fact[i-1][j-1]/j;
		}
}

void PD()
{
	int i,j;
	for(i=1;i<=n;i++)
		{
			dp[i][1]=dp[i-1][1]+val[i];
			for(j=2;j<=k;j++)
				dp[i][j]=val[i]*dp[i-1][j-1]+dp[i-1][j];
		}
}

int main ()
{
	freopen("dezastru.in" , "r" , stdin);
	freopen("dezastru.out" , "w" , stdout);
	int i;
	scanf("%d%d" , &n, &k);
	for(i=1;i<=n;i++)
		scanf("%f" , &val[i]);
	factorial();
	PD();
	printf("%.6f" , dp[n][k]/fact[n][k]);
	return 0;
}