Cod sursa(job #164365)

Utilizator nimeniaPaul Grigoras nimenia Data 24 martie 2008 00:19:29
Problema Combinari Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include <fstream.h>
#include <stdio.h>


int sol[30],n,kk;
long nr;
double  fact,fact2;
double v[30],st;

int cond(int a){
	for (int i=0;i<a;i++)
		if (sol[i]==sol[a]) return 0;
	return 1;
}

double calc(int a){
	 double p=1;
	 for (int i=1;i<=a;i++)
		 p*=v[sol[i]-1];
	 return p;

	 }


int main(){
	ifstream f("dezastru.in");
	freopen("dezastru.out","w",stdout);
	int k;
	f>>n;
	int i;
	f>>kk;
	for ( i=0;i<n;i++) f>>v[i];
	k=1;sol[k]=1;
	while (k>0){

		  if (sol[k]>n-(kk-k)) sol[--k]++;
		  else if (k==kk) {st+=calc(k);sol[k]++;nr++;}
		  else if (k<n) {sol[++k]=sol[k-1]+1;}
		  }

    st/=nr;

	printf("%lf",st);

	f.close();
	return 0;
}