Cod sursa(job #3225213)

Utilizator EricDimiC. Eric-Dimitrie EricDimi Data 17 aprilie 2024 09:18:15
Problema Dezastru Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <iostream>
#include <fstream>
#include <iomanip>
#define NMAX 25

using namespace std;

ifstream f("dezastru.in");
ofstream g("dezastru.out");

int a[NMAX], viz[NMAX];
int i, n, K, nrpermutari;
double v[NMAX], ans;

void bkt(int k)
{
	int i, j;
	double temp;
	for (i = 1; i <= n; i++)
		if (!viz[i])
		{
			viz[i] = 1;
			a[k] = i;
			if (k == n)
			{
				++nrpermutari;
				temp = 1;
				for (j = 1; j <= K; j++)
					temp *= v[a[j]];
				ans += temp;
			}
			else bkt(k+1);
				viz[i] = 0;
		}
}

int main()
{
	f >> n >> K;
	for (i = 1; i <= n; i++)
		f >> v[i];
	bkt(1);
	g << fixed << setprecision(6) << ans/nrpermutari;
	f.close();
	g.close();
	return 0;
}