Cod sursa(job #419706)

Utilizator mihaipopa12Popa Mihai mihaipopa12 Data 17 martie 2010 21:25:11
Problema Dezastru Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include<stdio.h>
#define dim 150
FILE*f=fopen("dezastru.in","r");
FILE*g=fopen("dezastru.out","w");
int x[dim],n,s,j,z;
char ok,viz[dim];
float v[dim],w[dim],suma,r,p;

void back(int k){
	int i;
	if(k==s+1){
		/*for(i=1;i<=s;i++)
			fprintf(g,"%d ",x[i]);
		fprintf(g,"\n");
		*/
		p=1;
		for(i=1;i<=s;i++)
			p*=v[x[i]];
		w[++z]=p;
		
		return;
	}
	for(i=1;i<=n;i++){
		if(viz[i]==0){
			x[k]=i;
			viz[i]=1;
			back(k+1);
			viz[i]=0;
		}
	}
}
int main () {
	
	fscanf(f,"%d %d",&n,&s);
	for(j=1;j<=n;j++)
		fscanf(f,"%f",&v[j]);
	
	back(1);
	for(j=1;j<=z;j++){
		suma+=w[j];
	}
	r=suma/z;
	fprintf(g,"%.6f",r);
	fclose(f);
	fclose(g);
	return 0;
}