Pagini recente » Cod sursa (job #2798297) | Cod sursa (job #311777) | Cod sursa (job #313236) | Cod sursa (job #2789510) | Cod sursa (job #3262315)
#include <fstream>
#include <iomanip>
using namespace std;
ifstream f ("dezastru.in");
ofstream g ("dezastru.out");
const int NMAX = 25;
int n, K, x[NMAX+1];
double v[NMAX+1], cnt, prod, sol;
void backTracking(int k) {
if (k <= K) {
for (int i = x[k-1]+1; i<=n-K+k; i++) {
x[k] = i;
prod *= v[i];
backTracking(k+1);
prod /= v[i];
}
} else {
cnt ++;
sol += prod;
}
}
int main()
{
f >> n >> K;
for (int i=1; i<=n; i++)
f >> v[i];
prod = 1;
backTracking(1);
g << fixed << setprecision(6) << sol / cnt;
f.close();
g.close();
return 0;
}