Pagini recente » Cod sursa (job #413876) | Cod sursa (job #2218564) | Cod sursa (job #1291043) | Cod sursa (job #1591489) | Cod sursa (job #3151106)
#include<fstream>
#include<vector>
#include<cmath>
#include<iomanip>
using namespace std;
using ll = long long;
ifstream cin("dezastru.in");
ofstream cout("dezastru.out");
long double v[25];
long double p(int &masca)
{
long double ans = 1;
for(int i = 0 ; i < 25 ; i++)
if(masca & (1 << i))
ans *= v[i];
return ans;
}
int main()
{
int n,k,maxi; cin >> n >> k; maxi = (1 << n);
for(int i = 0 ; i < n ; i++) cin >> v[i];
long double f = 1,ans = 0;
for(int i = k + 1; i <= n ; i++) f *= i;
for(int m = 0; m < maxi ; m++)
{
if(__builtin_popcount(m) == k)
ans += p(m) / f;
}
cout << fixed << setprecision(9) << ans;
}