Pagini recente » Cod sursa (job #2231438) | Cod sursa (job #1904374) | Cod sursa (job #2679635) | Cod sursa (job #3212233) | Cod sursa (job #1148322)
#include<fstream>
#include<iomanip>
using namespace std;
ifstream fin("dezastru.in");
ofstream fout("dezastru.out");
int n, k, i, sol[26], nf;
double s, po[26];
void back(int p){
int i, j;
if (p == k){
double pr = 1;
for (i = 1; i <= k; i++)
pr = pr * po[sol[i]];
// fout << sol[i] << " ";
s = s + pr / nf;// fout << '\n';
} else {
for (i = 1; i <= n; i++){
int ok = 1;
for (j = 1; j <= p; j++)
if (sol[j] >= i)
ok = 0;
if (ok){
sol[p + 1] = i;
back(p + 1);
}
}
}
}
int main(){
fin >> n >> k;
nf = 1;
for (i = 1; i <= n; i++){
fin >> po[i]; nf = nf * i;
}
back(0);
s = s * 2;
fout << fixed << setprecision(6) << s << '\n';
fin.close();
fout.close();
}