Pagini recente » Cod sursa (job #670998) | Cod sursa (job #2409622) | Cod sursa (job #2710694) | Cod sursa (job #668797) | Cod sursa (job #1624220)
#include <fstream>
#include <iomanip>
using namespace std;
ifstream f("dezastru.in");
ofstream g("dezastru.out");
int n, k, i, j;
double a[26], s;
int b[26], nf;
void back(int t)
{
int i;
if (t == k+1)
{
double p = 1;
for (i = 1; i <= k; i++)
p *= a[b[i]];
s += (2*p)/nf;
}
else
{
for (i = b[t-1]+1; i <= n; i++)
{
b[t] = i;
back(t+1);
}
}
}
int main()
{
f >> n >> k;
for (i = 1, nf = 1; i <= n; i++)
nf *= i;
for (i = 1; i <= n; i++)
f >> a[i];
back(1);
g <<fixed<<setprecision(6)<<(double) s;
return 0;
}