Cod sursa(job #2422387)

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

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

int n, k, x[30], number;
double fract[30], 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 << setprecision(6) << suma / number;
	fin.close();
	fout.close();
	return 0;
}