Pagini recente » Cod sursa (job #1331256) | Cod sursa (job #1974518) | Cod sursa (job #249675) | Istoria paginii runda/vot | Cod sursa (job #2071043)
#include <fstream>
#include <iomanip>
#include <algorithm>
using namespace std;
ifstream fin("dezastru.in");
ofstream fout("dezastru.out");
int n,k,lop;
double v[50];
int x[50];
long long q[50]={1,1,2,6,24,120,720,5040,40320,362880,3628800,39916800,479001600,6227020800,87178291200,1307674368000,20922789888000,355687428096000,6402373705728000,121645100408832000,2432902008176640000};
double s=0;
void bkt()
{
int k1=1;
x[1]=0;
while(k1)
{
if(x[k1]<n)
{
x[k1]++;
if(k1==k)
{
double prod=1;
for(int i=1;i<=k;i++)
{
prod*=v[x[i]];
}
for(int i=k+1;i<=n;i++)
{
prod=(double)prod/i;
}
s+=prod;
}
else
{
k1++;
x[k1]=x[k1-1];
}
}
else
{
k1--;
}
}
}
int main()
{
fin>>n>>k;
lop=n-k;
for(int i=1;i<=n;i++)
{
fin>>v[i];
}
long long pr=1;
bkt();
fout<<setprecision(6)<<fixed;
fout<<s;
return 0;
}