Cod sursa(job #395170)

Utilizator dushmiMihai-Alexandru Dusmanu dushmi Data 12 februarie 2010 12:37:26
Problema Dezastru Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include<stdio.h>
#include<math.h>
int n,j,k,ev,as,m,a[30],sol;
double qq,stot,sx,rasp,s[30];
bool frec[30];
void back(int l)
{
	if(l==k+1)
	{
		stot+=qq;
		sol++;
		return;
	}
	for(int i=1;i<=n;i++)
	{
		if(frec[i]==false)
		{
			a[l]=i;
			frec[i]=true;
			qq*=s[a[l]];
			back(l+1);
			qq/=s[a[l]];
			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]);
	qq=1;
    back(1);
    rasp=(double)stot/(double)sol;
    printf("%.6lf",rasp);
	return 0;
}