Cod sursa(job #678416)

Utilizator ktalyn93Catalin ktalyn93 Data 11 februarie 2012 17:23:05
Problema Dezastru Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <stdio.h>
using namespace std;
int n,k,st[26],P;
float a[26],s;
bool verif(int p)
{
	for (int i=1;i<p;i++)
		for(int j=i+1;j<=p;j++)
			if (st[i]==st[j])	
				return false;
	
		return true;
}
void calc()
{

	float pr=1;
	for(int i=1;i<=k;i++)
		pr*=a[st[i]];
	s+=pr;
	P++;
}
void back(int p)
{
	for(int i=1;i<=n;i++)
	{
		st[p]=i;
		if(verif(p))
			if(p==n)
				calc();
		else
		back(p+1);
	}
}
int main()
{
	P=0;
	freopen("dezastru.in","r",stdin);
	freopen("dezastru.out","w",stdout);
	scanf("%d %d",&n,&k);
	for(int i=1;i<=n;i++)
		scanf("%f",&a[i]);
	back(1);
	printf("%f",s/P);
	return 0;
}