Cod sursa(job #2816909)

Utilizator LicaMihaiIonutLica Mihai- Ionut LicaMihaiIonut Data 12 decembrie 2021 14:25:44
Problema Dezastru Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.62 kb
#include <cstdio>
#include <cstring>
using namespace std;
int N, K, C[64][64];
double v[64], sum;

void back(int lev, int f, double p)
{
	int i;
	if (lev == K)
		sum += p;
	else
		for (i = f; N+lev >= K+i; ++i)
			back(lev+1, i+1, p*v[i]);
}

int main()
{
	int i, j;

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

	scanf("%d %d", &N, &K);
	for (i = 0; i < N; ++i)
		scanf("%lf", v+i);
	sum = 0.;
	back(0, 0, 1.);

	for (i = 0; i <= N; ++i)
		for (C[i][0] = 1, j = 1; j <= i; ++j)
			C[i][j] = C[i-1][j]+C[i-1][j-1];

	printf("%lf\n", sum/(double)C[N][K]);
	return 0;
}