Pagini recente » Cod sursa (job #3153329) | Cod sursa (job #1188953) | Cod sursa (job #112761) | Cod sursa (job #1145439) | Cod sursa (job #1624249)
#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];
bool apar[26];
unsigned long long 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 += p;
}
else
{
for (i = 1; i <= n; i++)
if (apar[i] == 0)
{
b[t] = i;
apar[i] = 1;
back(t+1);
apar[i] = 0;
}
}
}
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/nf;
return 0;
}