Cod sursa(job #395167)

Utilizator dushmiMihai-Alexandru Dusmanu dushmi Data 12 februarie 2010 12:33:18
Problema Dezastru Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include<stdio.h>
#include<math.h>
int n,j,k,ev,as,m,a[30],sol;
double stot,sx,rasp,s[30];
bool frec[30];
void afisare()
{
	double qq=1;
	for(int i=1;i<=k;i++)
		qq*=(double)s[a[i]];
	stot+=qq;
}
void back(int l)
{
	if(l==k+1)
	{
		afisare();
		sol++;
		return;
	}
	for(int i=1;i<=n;i++)
	{
		if(frec[i]==false)
		{
			a[l]=i;
			frec[i]=true;
			back(l+1);
			frec[i]=false;
		}
	}
}
int main()
{
    freopen("dezastru.in","r",stdin);
    freopen("dezastru.out","w",stdout);
    scanf("%d%d",&n,&k);
	for(int i=1;i<=n;i++)
		scanf("%lf",&s[i]);
    back(1);
    rasp=(double)stot/(double)sol;
    printf("%.6lf",rasp);
	return 0;
}