Pagini recente » Cod sursa (job #1096475) | Cod sursa (job #205772) | Istoria paginii home | Rating BilanRazvan-Gavril (BilanRazvan) | Cod sursa (job #2493391)
#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+=(double)p/nrsol;
}
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);
fout<<fixed<<setprecision(6)<<sum;
}