Pagini recente » Cod sursa (job #1434719) | Cod sursa (job #2434491) | Cod sursa (job #1665533) | Cod sursa (job #1281695) | Cod sursa (job #2068651)
#include <fstream>
#include <iomanip>
#define nmax 30
using namespace std;
fstream f1("dezastru.in", ios::in);
fstream f2("dezastru.out", ios::out);
int n, m, v[nmax];
long long f[nmax];
long double p[nmax], rez, prod;
void bkt(int k)
{
int i;
for(i=v[k-1]+1; i<=n; i++)
{
v[k]=i;
if(k<=m)
{
if(k==m)
{
prod=1.0;
for(int j=1; j<=m; j++)
prod*=p[v[j]];
rez+=prod*f[k]*f[n-k];
}
else bkt(k+1);
}
}
}
void fact()
{
int i;
f[1]=1;
for(i=2; i<=n; i++)
f[i]=f[i-1]*i;
}
int main()
{
int i;
f1>>n>>m;
fact();
for(i=1; i<=n; i++) f1>>p[i];
bkt(1);
f2<<fixed<<setprecision(6)<<rez/f[n];
return 0;
}