Pagini recente » Cod sursa (job #788091) | Cod sursa (job #74902) | Cod sursa (job #2828403) | Cod sursa (job #726456) | Cod sursa (job #1742471)
#include <fstream>
#include <algorithm>
#include <vector>
using namespace std;
int n, k, v[30];
double r[30];
vector<double> a;
void read();
double solve();
bool next_combination();
void write();
int main(){
read();
write();
return 0;
}
void read(){
ifstream fin ("dezastru.in");
fin >> n >> k;
for (int i = 1; i <= n; ++i)
fin >> r[i],
v[i] = i;
fin.close();
}
double solve(){
double x, s(0);
int t(0);
do{
x = 1;
for (int i = 1; i <= k; ++i)
x *= r[v[i]];
s += x;
++t;
}while(next_combination());
return s/t;
}
bool next_combination(){
int r = k;
int f = n;
++v[r];
if (v[r] == f+1){
--v[r];
while (v[r] == f){
--r;
--f;
if (!r)
return 0;
}
++v[r];
int e = v[r];
for (int i = r+1; i <= k; ++i)
v[i] = ++e;
}
return 1;
}
void write(){
ofstream fout ("dezastru.out");
fout << solve();
fout.close();
}