Cod sursa(job #153971)

Utilizator mircea_infoSuciu Mircea-Gabriel mircea_info Data 10 martie 2008 20:48:14
Problema Dezastru Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <stdio.h>
int n,m,x[27],nrsol=0,used[27],z=0;
float p[27],prob[300];

void afish(){
     nrsol++;
     int i;
     prob[++z]=p[x[1]];
     for(i=2;i<=m;i++)
        prob[z]*=p[x[i]];
}

void back(int k){
	int i;
	for(i=1;i<=n;i++){
		x[k]=i;
        if(used[i]==0){
            used[i]=1;
            if(k==n)
                afish();
            else
                back(k+1);
	    used[i]=0;
        }
    }
}

int main(){
	int i;
	double tot=0;
    freopen("dezastru.in","r",stdin);
	freopen("dezastru.out","w",stdout);
	scanf("%d%d",&n,&m);
	for(i=1;i<=n;i++)
        scanf("%f",&p[i]);
    back(1);
    for(i=1;i<=z;i++)
	    tot+=prob[i]/nrsol;    
    printf("%.6f\n",tot);
    fclose(stdout);
	return 0;
}