Pagini recente » Cod sursa (job #2436972) | Cod sursa (job #2429871) | Cod sursa (job #2436974) | Cod sursa (job #2422387) | Cod sursa (job #2351576)
#include <fstream>
#include <iomanip>
using namespace std;
ifstream fin("dezastru.in");
ofstream fout("dezastru.out");
int p[30], u[30], n, m;
int l = 1;
float v[30],cal[30];
void Afisare()
{
float sum = 1;
for (int i = 1; i <= m; i++)
sum = sum * float(v[p[i]]);
cal[l++] = sum;
}
void Generare(int k)
{
if (k - 1 == m)
Afisare();
else
{
for (int i = 1; i <= n; i++)
{
if (!u[i])
{
u[i] = 1;
p[k] = i;
Generare(k + 1);
u[i] = 0;
}
}
}
}
int main()
{
fin >> n >> m;
for (int i = 1; i <= n; i++)
fin >> v[i];
Generare(1);
l--;
float sumx = 0;
for (int i = 1; i <= l; i++)
sumx = sumx + cal[i] / float(l);
fout <<setprecision(6)<<sumx;
return 0;
}