Cod sursa(job #324511)

Utilizator Magnuscont cu nume gresit sau fals Magnus Data 16 iunie 2009 13:52:30
Problema Dezastru Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include<stdio.h>   
#define infile "dezastru.in"   
#define outfile "dezastru.out"   
#define nmax 31   
double p[nmax];
int n,k;
double prob;
int nr;

void citire()
    {
    int i;
    scanf("%d %d\n",&n,&k);
    for(i=1;i<=n;i++)
	scanf("%lf",&p[i]);
    }

void comb(int x, int poz, double pr)
    {
    int i;
    if(x>k)
	{
	prob+=pr;
	nr++;
	}
    else
	for(i=poz+1;i<=n-k+x;i++)
	    comb(x+1,i,pr*p[i]);
    }

int main()
{
freopen(infile,"r",stdin);
freopen(outfile,"w",stdout);

citire();
comb(1,0,1);
printf("%lf",prob/nr);

fclose(stdin);
fclose(stdout);
return 0;
}