Cod sursa(job #1233440)

Utilizator Mr.DoomRaul Ignatus Mr.Doom Data 25 septembrie 2014 14:01:30
Problema Dezastru Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <fstream>
using namespace std;

ifstream is("dezastru.in");
ofstream os("dezastru.out");

int n, p;
int a[26], b[26];
float c[26];
float fin;
float inm;
int cnt;

void Calcul();
void aranjamente(int k);

int main()
{
	is >> n >> p;
	for( int i = 1; i <= n; ++i )
		is >> c[i];
	
	aranjamente(1);
	
	os << fin / cnt;
	is.close();
	os.close();
	return 0;
}


void Calcul()
{
	cnt++;
	inm = 1;
	for(int i = 1; i <= p; ++i)
		inm *= c[a[i]];
	fin += inm;
}

void aranjamente(int k)
{
	if ( k == p + 1)
		Calcul();
	else
	{
		for(int i = 1; i <= n; ++i)
		{
			if(!b[i])
			{
				a[k] = i;
				b[i] = 1;
				aranjamente(k + 1);
				b[i] = 0;
			}
		}
	}
}