Cod sursa(job #558019)

Utilizator krysstynelBojor Fineas Cristian krysstynel Data 17 martie 2011 01:29:59
Problema Dezastru Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include<fstream>
using namespace std;
ifstream fi("dezastru.in");
ofstream fo("dezastru.out");

int sol[10],n,used[10],k,cate;
double a[30],s=0;

void calc()
{
	double p=1;
	
	
	for(int i=1; i<=k; i++)
	{
		p=p*a[sol[i]];
	}
	
	p=(double)p/cate;
	
	s+=p;
}

void back(int pas)
{
	if(pas>n)
	{
		calc();
		return;
	}

	else
	for(int i=1; i<=n; i++)
	{
		if(!used[i])
		{
			sol[pas]=i;

			used[i]=1;

			back(pas+1);

			used[i]=0;
		}
	}
}

int main()
{
	fi>>n>>k;
	
	cate=1;
	
	for(int i=1; i<=n; i++)
	{
		fi>>a[i];
		cate=cate*i;
	}

	back(1);
	
	fo<<s;

	fi.close();
	fo.close();

	return 0;
}