Pagini recente » Cod sursa (job #2137766) | Cod sursa (job #1390180) | Cod sursa (job #1775952) | Cod sursa (job #1776685) | Cod sursa (job #1618138)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("dezastru.in");
ofstream out("dezastru.out");
int n,k;
int sol[30];
int ap[30];
double v[30];
double sum;
int am;
void afis() {
double c = 1;
for(int i = 1; i <= k; i++)
c *= v[sol[i]];
sum += c;
am++;
}
void bck(int top) {
if(top == k+1)
afis();
else {
for(int i = 1; i <= n; i++) {
if(!ap[i]) {
sol[top] = i;
ap[i] = 1;
bck(top+1);
ap[i] = 0;
}
}
}
}
int main() {
in >> n >> k;
for(int i = 1; i <= n; i++)
in >> v[i];
bck(1);
out.precision(6);
out << sum/am;
return 0;
}