Pagini recente » Cod sursa (job #3207027) | Cod sursa (job #1699361) | Cod sursa (job #2676482) | Cod sursa (job #1827519) | Cod sursa (job #1366865)
#include<fstream>
using namespace std;
typedef int var;
ifstream fin("dezastru.in");
ofstream fout("dezastru.out");
#define MAXN 26
bool USE[MAXN];
double P[MAXN];
double global_prob;
var nr_perm;
void calc(var n) {
double prob = 1;
for(var i=1; i<=n; i++) {
if(USE[i])
prob *= P[i];
}
nr_perm ++;
global_prob += prob;
}
void gen(var n, var k, var pas, var taken) {
if(taken >= k) {
calc(n);
return;
}
if(pas > n) {
return;
}
USE[pas] = 0;
gen(n, k, pas+1, taken);
USE[pas] = 1;
gen(n, k, pas+1, taken+1);
USE[pas] = 0;
}
int main() {
var n, k;
fin>>n>>k;
for(var i=1; i<=n; i++) {
fin>>P[i];
}
gen(n, k, 1, 0);
fout<<global_prob / nr_perm;
return 0;
}