Pagini recente » Cod sursa (job #2853263) | Cod sursa (job #887672)
Cod sursa(job #887672)
#include<fstream>
#include<iomanip>
using namespace std;
ifstream fin("dezastru.in");
ofstream fout("dezastru.out");
const int Eps = 0.000001;
int Sol[26]; int N; int K; double Sum; double V[30];
void Add(){
double X = 1;
for(int i = 1; i <= K; ++i)
X *= V[Sol[i]];
Sum += X;
}
void Back(int k){
if(k - 1 == K)
Add();
else
for(int i = Sol[k - 1] + 1; i <= N; ++i){
Sol[k] = i; Back(k + 1);
}
}
void Read() {
fin >> N >> K;
for(int i = 1 ;i <= N; ++i) fin >> V[i];
}
void Print(){
long long Comb = 1;
for(int i = K + 1; i <= N; ++i) Comb *= i;
for(int i = 1; i <= N - K ; ++i) Comb /= i;
fout << fixed << setprecision(6) << Sum/Comb;
}
int main(){
Read();
Back(1); Print();
return 0;
}