Cod sursa(job #482627)

Utilizator SzabiVajda Szabolcs Szabi Data 4 septembrie 2010 01:29:24
Problema Dezastru Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.56 kb
#include <stdio.h>
int n,k,cnk=0,v[27];
float a[27],b[27][27];

void back(int p){
int i;

for(i=v[p-1]+1;i<=n-k+p;i++){
v[p]=i;
if(p==k){cnk++;}else{back(p+1);}

}

}


void szamol(){
int i,j;

for(i=1;i<=n;i++){
b[i][1]=b[i-1][1]+a[i];
for(j=2;(j<=k)&&(j<=i);j++){
b[i][j]=b[i-1][j-1]*a[i]+b[i-1][j];

}

}


}

int main(){

	freopen("dezastru.in","r",stdin);
	freopen("dezastru.out","w",stdout);
	int i;
	scanf("%d %d",&n,&k);
	for(i=1;i<=n;i++){scanf("%f",&a[i]);}

	back(1);
	szamol();

	printf("%f",b[n][k]/cnk);

	return 0;}