Pagini recente » Istoria paginii blog/rezultate-agora-2005 | Cod sursa (job #433538) | Cod sursa (job #1520659) | Cod sursa (job #331392) | Cod sursa (job #2728840)
#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;
}