Pagini recente » Cod sursa (job #2326033) | Cod sursa (job #3248467) | Cod sursa (job #2754363) | Cod sursa (job #1761198) | Cod sursa (job #2521015)
#include <iostream>
#include <fstream>
#include <algorithm>
#define NMAX 30
using namespace std;
ifstream fin("dezastru.in");
ofstream fout("dezastru.out");
int N, K, num;
double ans, ntemp;
double arr[NMAX];
int perm[NMAX];
void BKT(int k, double temp)
{
{
for(int i = perm[k - 1] + 1; i <= N; i++){
perm[k] = i;
ntemp = temp * arr[perm[k]];
if(k == K){
//cout << temp << " ";
num++;
ans += temp;
}
else
BKT(k + 1, ntemp);
}
}
}
int main()
{
fin >> N >> K;
for(int i = 1; i <= N; i++){
fin >> arr[i];
}
BKT(1,double(1.0));
ans /= num;
fout << ans << "\n";
return 0;
}