Cod sursa(job #1059508)

Utilizator daniel.amarieiDaniel Amariei daniel.amariei Data 16 decembrie 2013 19:14:55
Problema Dezastru Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.54 kb
#include <stdio.h>

int n, k, nc;
double p[26];
double a[26][26];
double cnk[26][26];

int main()
{
	freopen("dezastru.in", "r", stdin);
	freopen("dezastru.out", "w", stdout);

	scanf("%d %d", &n, &k);
	for (int i = 1; i <= n; ++i)
		scanf("%lf", &p[i]);

	for (int i = 0; i <= 25; ++i)
	{
		a[i][0] = 1.0;
		cnk[i][0] = 1.0;
	}
	

	for (int i = 1; i <= n; ++i) 
	{
		for (int j = 1; j <= k; ++j)
		{
			a[i][j] = a[i-1][j] + a[i-1][j-1] * p[i];
			cnk[i][j] = cnk[i-1][j] + cnk[i-1][j-1];
		}
	}

	printf("%.6lf", a[n][k] / cnk[n][k]);
	return 0;
}