Cod sursa(job #2090980)

Utilizator Teodor.mTeodor Marchitan Teodor.m Data 18 decembrie 2017 22:09:51
Problema Dezastru Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.52 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("dezastru.in");
ofstream fout("dezastru.out");

const double eps = 0.000001;
int x[26];
int n, k;
double a[26];

void solve()
{
	double sum = 0.0;
	int nr = 0;

	for(int i = 1; i <= n; ++i)
		x[i] = i;

	do {
		double p = 1.0;
		nr++;
		
		for(int i = 1; i <= k; ++i)
			p *= a[x[i]];

		sum += p;
	}while(next_permutation(x + 1, x + n + 1));

	fout << sum / (double)nr;
}

int main()
{
	fin >> n >> k;

	for(int i = 1; i <= n; ++i)
		fin >> a[i];

	solve();

	return 0;
}