Cod sursa(job #688010)

Utilizator alexamiu2008Miu Alexandra alexamiu2008 Data 22 februarie 2012 22:32:28
Problema Dezastru Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include<stdio.h>
FILE*fin,*fout;
int a[26][26],n,m,nrc;
float v[26],pf,pc;
int sol[26];

void nrcomb(){
int i,j;
a[0][0]=1;
	for(i=1;i<=n;i++){
		for(j=0;j<=i;j++){
		 a[i][j]=a[i-1][j]+a[i-1][j-1];
		}
}
nrc=a[n][m];
}
void prelucrare(){
int i;
pc=1.000000;
	for(i=1;i<=n;i++){
		if(sol[i]!=0){
		pc=pc*v[sol[i]];
		}
	}
pf=pf+pc/nrc;
}
void comb(int k){
int t;
for(t=sol[k-1]+1;t<=n;t++){
	sol[k]=t;
	if(k==m){prelucrare();}
	else{comb(k+1);}
}
return ;
}

int main(){
fin=fopen("dezastru.in","r");
fout=fopen("dezastru.out","w");
fscanf(fin,"%d %d\n",&n,&m);
int i;
	for(i=1;i<=n;i++){
		fscanf(fin,"%f",&v[i]);
	}
	nrcomb();
	comb(1);
	fprintf(fout,"%.6f",pf);
return 0;}