Pagini recente » Cod sursa (job #2307508) | Cod sursa (job #1054178) | Cod sursa (job #2628698) | Cod sursa (job #208747) | Cod sursa (job #1001321)
#include <iostream>
#include <fstream>
#define nmax 25
using namespace std;
ifstream in("dezastru.in");
ofstream out("dezastru.out");
int n,k,st[nmax],m,num=0;
float v[nmax],s=0,x;
long long a;
void work(){
x=1;
for (int i=1; i<=m; i++)
x*=v[st[i]];
s+=x;
}
bool val(int k){
for (int i=1; i<k; i++)
if (st[k]==st[i]) return false;
return true;
}
void back(int k){
for (int i=1; i<=n; i++){
st[k]=i;
if (val(k) && st[k]>st[k-1]){
if (st[1]>n-m+1) break;
if (k==m) num++, work();
else back(k+1);
}
}
}
int main()
{
in >> n >> m;
for (int i=1; i<=n; i++)
in >> v[i];
back(1);
a=(s/num)/0.000001;
out << int(a/1000000) << "." << a%1000000;
return 0;
}