Pagini recente » Cod sursa (job #1485428) | Cod sursa (job #306689) | Cod sursa (job #1114140) | Cod sursa (job #2059956) | Cod sursa (job #1052891)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("dezastru.in");
ofstream out("dezastru.out");
int N, M, sol[20], use[20], c;
double s, p[20];
void afis(){
int i;
double x = 1;
for(i = 1; i <= M; i++){
x *= p[sol[i]];
}
c++; s += x;
}
void backt(int k){
if(k == M + 1){
afis();
}else{
for(int i = 1; i <= N; i++){
if(!use[i]){
sol[k] = i;
use[i] = 1;
backt(k + 1);
use[i] = 0;
}
}
}
}
int main()
{
in >> N >> M;
for(int i = 1; i <= N; i++){
in >> p[i];
}
backt(1);
out << s / c;
return 0;
}