Cod sursa(job #163406)

Utilizator nimeniaPaul Grigoras nimenia Data 22 martie 2008 09:57:42
Problema Combinari Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 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,p;
	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) sol[--k]++;
		  else if (k==kk) {st+=calc(k);sol[k]++;nr++;}
		  else if (k<n) {sol[++k]=sol[k-1]+1;}
		  }

  /* 	fact=1;	fact2=1;
	for (i=2;i<=kk;i++) fact2*=i;
	st=st*fact2;
	for(i=2;i<=n;i++)
		fact*=i;
	st=st/fact;*/
	st/=nr;

	printf("%lf",st);

	f.close();
	return 0;
}