Cod sursa(job #2422386)

Utilizator Rufus007Marincia Catalin Rufus007 Data 18 mai 2019 16:37:11
Problema Dezastru Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.57 kb
#include<fstream>
#include<iomanip>

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

int n, k, x[26], number;
double fract[26], suma;

void back(int l) {
	if (l == k) {
		number++;
		double produs = 1;
		for (int i = 1; i <= k; ++i)
			produs *= fract[x[i]];
		suma += produs;
	} else {
		for (int i = x[l] + 1; i <= n; ++i)
			x[l + 1] = i, back(l + 1);
	}

}


int main() {


	fin >> n >> k;
	for (int i = 1; i <= n; ++i) {
		fin >> fract[i];
	}
	back(0);
	fout << fixed << setprecision(6) << suma / number;
	fin.close();
	fout.close();
	return 0;
}