Pagini recente » Cod sursa (job #1096480) | Cod sursa (job #2215499) | Cod sursa (job #291405) | tema | Cod sursa (job #2493378)
#include <iostream>
#include<fstream>
#include<iomanip>
using namespace std;
ifstream fin ("dezastru.in");
ofstream fout ("dezastru.out");
int st[30], n, k;
unsigned long long nrsol, fact;
double v[30], sum, rez;
void produs ()
{
int i;
double p;
p=1;
for (i=1; i<=k; i++)
p*=v[st[i]];
p*=fact;
sum+=p;
}
void bck (int niv)
{
int i;
for (i=st[niv-1]+1; i<=n; i++)
{
st[niv]=i;
if (niv==k)
{
produs();
}
else bck(niv+1);
}
}
int main ()
{
fin>>n>>k;
nrsol=1;
for (int i=1; i<=n; i++)
{
fin>>v[i];
nrsol*=i;
}
fact=1;
for (int i=1; i<=k; i++)fact*=i;
st[0]=0;
bck(1);
rez=(double)sum/nrsol;
fout<<fixed<<setprecision(6)<<rez;
}