Pagini recente » Cod sursa (job #1786366) | Cod sursa (job #2555819) | Cod sursa (job #1675798) | Cod sursa (job #1291975) | Cod sursa (job #2108920)
#include <bits/stdc++.h>
using namespace std;
ifstream in("dezastru.in");
ofstream out("dezastru.out");
int n, k, cnt, st[30];
double p[30], rs;
void back(int nr, int lvl){
if(lvl == k + 1){
cnt++;
double nr = 1;
for(int i = 1; i <= k; i++)
nr = nr * p[st[i]];
rs += nr;
return;
}
for(int i = nr + 1; i <= n; i++)
st[lvl] = i, back(i, lvl + 1);
}
int main(){
in >> n >> k;
for(int i = 1; i <= n; i++)
in >> p[i];
back(0, 1);
out << fixed << setprecision(6) << rs / cnt;
// cerr << clock() * 1000.0 / CLOCKS_PER_SEC;
return 0;
}