Pagini recente » Cod sursa (job #302696) | Cod sursa (job #1708272) | Cod sursa (job #25347) | Cod sursa (job #2696942) | Cod sursa (job #1366899)
#include<fstream>
#include<iomanip>
using namespace std;
typedef int var;
ifstream fin("dezastru.in");
ofstream fout("dezastru.out");
#define MAXN 26
double P[MAXN];
double global_prob;
var nr_perm;
void gen(var &n, var &k, var pas, var taken, double prob) {
if(taken >= k) {
global_prob += prob;
nr_perm ++;
return;
}
if(pas - 1 + k - taken > n) {
return;
}
gen(n, k, pas+1, taken, prob);
gen(n, k, pas+1, taken+1, prob * P[pas]);
}
int main() {
var n, k;
fin>>n>>k;
for(var i=1; i<=n; i++) {
fin>>P[i];
}
gen(n, k, 1, 0, 1.0);
fout<<setprecision(7)<<fixed<<global_prob / nr_perm;
return 0;
}