Cod sursa(job #2244806)

Utilizator eilerGabriel-Ciprian Stanciu eiler Data 23 septembrie 2018 18:36:47
Problema Dezastru Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include <fstream>
#include <iomanip>
using namespace std;

int n, k, nrp;
double p[25], rez;

void genPerm(int al, int pz, double pr){
	if (al==k){
		rez+=pr;
		nrp++;
		return;
	}

	if (pz==n)
		return;

	if (k-al>n-pz)
		return;

	genPerm(al, pz+1, pr);
	genPerm(al+1, pz+1, pr*p[pz]);
}

int main(){
	int i;

	ifstream fin ("dezastru.in");
	fin >> n >> k;
	for (i=0; i<n; i++)
		fin >>  p[i];
	fin.close();

	genPerm(0, 0, 1);
	rez/=nrp;

	ofstream fout ("dezastru.out");
	fout << setprecision(6) << fixed << rez;
	fout.close();

	return 0;
}