Cod sursa(job #63359)

Utilizator Binary_FireFlorin Pogocsan Binary_Fire Data 27 mai 2007 22:22:12
Problema Dezastru Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <stdio.h>
#define fin  "dezastru.in"
#define fout "dezastru.out"
#define Nmax 26

long double v[Nmax],ret;
int N,K;

void go(int lv,int last,long double tmp) {
int i;
	if ( lv == K + 1 ) {
		ret = (long double) ( ret + tmp );
	//	fprintf(stderr,"%lf\n",tmp);
	}
	else 
		for (i=last+1;i<=N;++i)
			go(lv+1,i,(long double) (long double)tmp*(long double)v[i]);

}

int main() {
int i;
	freopen(fin,"r",stdin); freopen(fout,"w",stdout);

	scanf("%d%d",&N,&K);

	for (i=1;i<=N;++i)
		scanf("%Lf",&v[i]);

	go(1,0,1.0);
	
	for (i=K+1;i<=N;++i) 
		ret = (long double) ( (long double) ret / (long double) i );
	
	printf("%.20Lf\n",ret);
	

	return 0;
}