Cod sursa(job #788722)

Utilizator Mitza444Vidrean Mihai Mitza444 Data 15 septembrie 2012 18:04:16
Problema Dezastru Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.55 kb
#include<cstdio>
using namespace std;
double P[30],rez=0;
int comb[30],nr=0;
int n,K;
void add(){
	int i;
	double m=1.0;
	for(i=1;i<=K;i++)
		m*=P[comb[i]];
	rez+=m;
}
void back(int k){
	int i;
	if(k==K+1)
		add(),nr++;
	else{
		for(i=comb[k-1]+1;i<=n;i++){
			comb[k]=i;
			back(k+1);
		}
	}
}
int main(){
	int i;
	freopen("dezastru.in","r",stdin);
	scanf("%d%d",&n,&K);
	for(i=1;i<=n;i++)
		scanf("%lf",&P[i]);
	fclose(stdin);
	back(1);
	freopen("dezastru.out","w",stdout);
	printf("%lf",rez/nr);
	fclose(stdout);
	return 0;
}