Cod sursa(job #286370)

Utilizator titusuTitus C titusu Data 23 martie 2009 19:10:48
Problema Dezastru Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.5 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)
{
	for(int i=x[q-1]+1;i<=n;i++)
	{
		x[q]=i;
		if(q<k)
			back(q+1);
		else
		{
			double pp=1;
			for(int j=1;j<=k;j++)
				pp*=p[x[j]];
			suma+=pp;
			//fprintf(fout,"%.7lf ",pp);
			nrsol++;
		}
	}
}

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