Cod sursa(job #200461)

Utilizator nusmaibunkeleviprofesor cicalescu nusmaibunkelevi Data 24 iulie 2008 08:04:58
Problema Dezastru Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include<stdio.h>
int n,m,s[20];
long nrc;
double prc,prt;
double v[30];



void solutie(){
int i;
prc=1;
for(i=1;i<=m;++i)
	prc=prc*v[s[i]];
nrc++;
prt+=prc;
}

void btk(){
int k,up;
k=1;s[k]=0;
while(k){
	up=0;
	while(!up&&s[k]<n-m+k){
		s[k]++;up=1;
		}
	if(up)
		if(k==m) solutie();
		else {k++;s[k]=s[k-1];}
	else k--;
	}
}

int main(){
freopen("dezastru.in","r",stdin);
freopen("dezastru.out","w",stdout);
int i;
scanf("%d%d",&n,&m);
for(i=1;i<=n;++i) scanf("%lf",&v[i]);
if(m==0) {prt=1;nrc=1;}
else btk();
printf("%0.7lf",prt/nrc);
return 0;
}