Cod sursa(job #402840)

Utilizator klamathixMihai Calancea klamathix Data 24 februarie 2010 10:43:59
Problema Dezastru Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include<cstdio>

const int maxn = 30;

int i , j , k , n;
double prob[maxn] , total , part ,act;
int comb[maxn][maxn];
double A[maxn][maxn];

void dinamica() {

	int i , j ;
	
	for ( i = 1 ; i <= n ; ++i ) {
		comb[i][1] = i;
		for ( j = 2 ; j <= i ; ++j ) 
			comb[i][j] = comb[i - 1][j] + comb[i - 1][j - 1];
	}
	
	
	for( i = 1 ; i <= n ; ++i ){
		A[i][1] = A[i - 1][1] + prob[i];
		for( j = 2 ; j <= i ; ++j )
			A[i][j] = A[i - 1][j - 1] * prob[i] + A[i - 1][j];
	}
		
}

int main()
{
	freopen("dezastru.in","r",stdin);
	freopen("dezastru.out","w",stdout);
	
	scanf("%d %d",&n,&k);
	for( i = 1 ; i <= n ;++i ) 
		scanf("%lf",&prob[i]);
	
	dinamica();
	
	
printf("%.7lf\n",A[n][k] / comb[n][k]);

return 0;
}