Cod sursa(job #286372)

Utilizator titusuTitus C titusu Data 23 martie 2009 19:22:19
Problema Dezastru Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.56 kb
#include <stdio.h>

FILE *fin=fopen("dezastru.in","r");
FILE *fout=fopen("dezastru.out","w");
int x[30], n, k, nrsol;
double p[30],suma=0;

void back()
{
	int q=1; x[1]=0;
	while(q)
	{
		x[q]++;
		if(x[q]>n)
			q--;
		else
		if(q==k)
		{
			double pp=1;
			for(int i=1;i<=k;i++)
				pp *= p[x[i]];// fprintf(fout,"%d ",x[i]);
			//fprintf(fout,": %lf \n",pp);
			
			suma += pp, nrsol++;
		}
		else
			x[q+1]=x[q] ,q++;
			
	}
}

int main()
{
	fscanf(fin,"%d%d",&n, &k);
	for(int i=1;i<=n;i++)
		fscanf(fin,"%lf",p+i);
	back();
	fprintf(fout,"%.7lf",suma/ nrsol);
	return 0;
}