Cod sursa(job #173152)

Utilizator ciprianfFarcasanu Alexandru Ciprian ciprianf Data 7 aprilie 2008 11:45:18
Problema Dezastru Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.55 kb
#include <stdio.h>
int s[30],nr=0,n,k;
float v[30],sol;
/*void solutie(){
	int i;
	float x=1;
	nr++;
	for(i=1;i<=k;i++)
		x*=v[s[i]]*1.0;
	printf("%.6f\n",x);
	sol+=x;
}*/
void back(int l,float y){
	int i;
	float x;
	x=y;
	if(l==k){
		sol+=x;
		nr++;
	}
	else 
		for(i=s[l]+1;i<=n+l-k+1;i++){
			s[l+1]=i;
			y=y*v[s[l+1]];
			back(l+1,y);
			y=x;
		}
}
int main(){
	int i;
	freopen("dezastru.in","r",stdin);
	freopen("dezastru.out","w",stdout);
	scanf("%d%d",&n,&k);
	for(i=1;i<=n;i++)
		scanf("%f",&v[i]);
	back(0,1);
	sol=sol/nr*1.0;
	printf("%.6f",sol);
}