Pagini recente » Cod sursa (job #1294908) | Cod sursa (job #2215651) | Cod sursa (job #2754280) | Cod sursa (job #1857048) | Cod sursa (job #2168081)
#include <iostream>
#include <iomanip>
#include <fstream>
using namespace std;
ifstream f("permutari.in");
ofstream g("permutari.out");
int v[30], n, m, K;
double a[30], S;
void afis(int k)
{
double p = 1;
for(int i = 1; i <= m; ++i)
{
p *= a[v[i]];
}
S += p;
K++;
}
int verif(int k)
{
for(int i = 1; i < k; ++i)
if(v[i] == v[k])
return 0;
return 1;
}
void bck(int k)
{
for(int i = 1; i <= n; ++i)
{
v[k] = i;
if(verif(k))
{
if(k == m)
{
afis(k);
}
else bck(k+1);
}
}
}
int main()
{
cin>>n>>m;
for(int i = 1; i <= n; ++i)
cin>>a[i];
bck(1);
cout<<fixed<<setprecision(6)<<(double)S/K;
return 0;
}