Cod sursa(job #538763)

Utilizator robertgbrrobertgbr robertgbr Data 21 februarie 2011 21:35:27
Problema Dezastru Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include<stdio.h>

double x[63][63] , p[63] , sol ;

int i,j,n,k ;

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",&p[i]);
	
	x[1][1] = p[1] ;
	
	for( i = 2 ; i <= n ; i++ )
	{
		x[i][1] = x[i-1][1] + p[i];
		x[i][i] = x[i-1][i-1] * p[i];
	}
	
	for( i = 2 ; i <= n ; i++ )
		for( j = 2 ; j < i ; j++ )
			x[i][j] = x[i-1][j] + x[i-1][j-1] * p[i] ;
	
	sol = x[n][k] ;
	
	for( i = k + 1 ; i <= n ; i++ )
		sol /= i ;
	
	for( i = 1 ; i <= n - k ; i++ )
		sol *= i ;
	
	printf("%lf",sol);
	
	return 0 ;
}