Pagini recente » Cod sursa (job #2564745) | Statistici Mihai Negutu (mnegutu) | Cod sursa (job #381842) | Cod sursa (job #3296731) | Cod sursa (job #2493384)
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
ifstream fin("dezastru.in");
ofstream fout("dezastru.out");
int st[30],n,k,i;
double v[30],p;
void prod(int niv,double &p)
{
double x=1,l=1,o=1;;
int i;
for(i=1;i<=niv;i++)
{
x=(double)(x*v[st[i]]);
}
for(i=1;i<=k;i++)
{
l=l*i;
}
for(i=1;i<=n;i++)
{
o=o*i;
}
p=p+(x*k)/o;
}
void bck(int niv,double &p)
{
int i;
for(i=st[niv-1]+1;i<=n;i++)
{
st[niv]=i;
if(niv==k)
{
prod(niv,p);
}
else
{
bck(niv+1,p);
}
}
}
int main()
{
fin>>n>>k;
for(i=1;i<=n;i++)
{
fin>>v[i];
}
bck(1,p);
fout<<fixed<<setprecision(6)<<p;
return 0;
}