Pagini recente » Cod sursa (job #2834147) | Cod sursa (job #574044) | Cod sursa (job #319035) | Cod sursa (job #1661007) | Cod sursa (job #2605879)
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
ifstream f("dezastru.in");
ofstream g("dezastru.out");
int x[26], n, k, nr, j;
double v[26], p, s;
bool valid(int l)
{
for(int i = 1; i < l; ++ i)
{
if(x[i] >= x[l])
return false;
}
return true;
}
void back(int l)
{
for(int i = 1; i <= n; ++ i)
{
x[l] = i;
if(valid(l))
if(l == k)
{
nr = nr + 1;
for(j = 1, p = 1; j <= k; ++ j)
p = p * v[x[j]];
s = s + p;
}
else
back(l + 1);
}
}
int main()
{
f >> n >> k;
for(int i = 1; i <= n; ++ i )
f >> v[i];
back(1);
g << fixed << setprecision(6) << (double) s / nr;
return 0;
}