Pagini recente » Cod sursa (job #747546) | Cod sursa (job #2626435) | Cod sursa (job #2439799) | Cod sursa (job #652645) | Cod sursa (job #2521018)
#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){
num++;
ans += ntemp;
}
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;
}