Cod sursa(job #402494)

Utilizator avram_florinavram florin constantin avram_florin Data 23 februarie 2010 21:44:35
Problema Dezastru Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include<cstdio>
#include<cstdlib>
#define MAXN 30

using namespace std;

int n,k;
float val[MAXN],dp[MAXN][MAXN];
long long 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;
}