Cod sursa(job #2728840)

Utilizator gavra_bogdanBogdan Gavra gavra_bogdan Data 23 martie 2021 19:18:22
Problema Dezastru Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.57 kb
#include <fstream>
#include <iomanip>
#define ld long double
#pragma GCC optimize("O3")

ld ans, v[30], n, k;

void calc(int curr, ld prob, int kk = 0) {
	if(n-curr+1+kk<k) return;
	if(curr==n) {
		ans += prob;
		return;
	}
	calc(curr+1, prob, kk);
	calc(curr+1, prob*v[curr], kk+1);
}

int main() {
	std::ifstream fin("dezastru.in");
	std::ofstream fout("dezastru.out");
	fin>>n>>k;
	for(int i=1;i<=n;i++) fin>>v[i];
	calc(1, 1.0);
	for(int i=1;i<=n-k;i++) ans*=(ld)i;
	for(int i=k+1;i<=n;i++) ans/=(ld)i;
	fout<<std::fixed<<std::setprecision(6)<<ans;
}