Cod sursa(job #161848)

Utilizator znakeuJurba Andrei znakeu Data 18 martie 2008 21:15:20
Problema Dezastru Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <stdio.h>
#define MAXN 30

double v[MAXN][MAXN];
double x[MAXN][MAXN];
double V[MAXN];
int n,k;

int main()
{
	freopen("dezastru.in","r",stdin);
	freopen("dezastru.out","w",stdout);
	
	int i,j;
	double rez=0;
	
	scanf("%d%d",&n,&k);

	
	for (i=0,j=0; i<n; i++)
		scanf("%lf",&V[i]);
	
	v[1][1]=V[0];
	v[1][0]=1;
	x[1][0]=1;
	x[1][1]=1;
	
	for (i=2; i<=n; i++)
	{
		v[i][0]=1;
		x[i][0]=1;
		for (j=1; j<=i && j<=k; j++)
		{
			v[i][j]=v[i-1][j]+v[i-1][j-1]*V[i-1];
			x[i][j]=x[i-1][j]+x[i-1][j-1];			
		}		
	}
	
	rez=v[n][k];
	rez/=x[n][k];
	
	printf("%.6lf\n",rez);
	
	fclose(stdin);
	fclose(stdout);
	return 0;
}