Pagini recente » Borderou de evaluare (job #2130826) | Cod sursa (job #156606) | Borderou de evaluare (job #1392198) | Borderou de evaluare (job #1391407) | Cod sursa (job #2493375)
#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*l)/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;
}