Pagini recente » Cod sursa (job #877002) | Cod sursa (job #576078) | Cod sursa (job #2893594) | Cod sursa (job #3003054) | Cod sursa (job #2521011)
#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;
double arr[NMAX];
int perm[NMAX];
void BKT(int k, double temp)
{
if(k - 1 == K){
//cout << temp << " ";
num++;
ans += temp;
}
else
{
for(int i = perm[k - 1] + 1; i <= N; i++){
perm[k] = i;
double ntemp = temp * arr[perm[k]];
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;
}