Cod sursa(job #1488367)

Utilizator al.mocanuAlexandru Mocanu al.mocanu Data 18 septembrie 2015 20:10:17
Problema Dezastru Scor 80
Compilator c Status done
Runda Arhiva de probleme Marime 0.54 kb
#include <stdio.h>
#define MAX 30

long long nr;
int n, k, i, val[MAX];
double prob, ploc[MAX], p[MAX];

void comb(int x);

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]);
	ploc[0] = 1;
	comb(1);
	printf("%lf\n", prob / nr);
	return 0;
}

void comb(int x){
	int i;
	if(x == k + 1){
		prob += ploc[k];
		nr++;
		return;
	}

	for(i = val[x - 1] + 1; i <= n + x - k; i++){
		val[x] = i;
		ploc[x] = ploc[x - 1] * p[val[x]];
		comb(x + 1);
	}
}