Pagini recente » Cod sursa (job #2985962) | Cod sursa (job #2426240) | Cod sursa (job #80423) | Cod sursa (job #1950722) | Cod sursa (job #2776582)
#include <bits/stdc++.h>
using namespace std;
ifstream f("dezastru.in");
ofstream g("dezastru.out");
#define cin f
#define cout g
//#define int long long
const int Max = 26;
void nos()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
}
int n,k;
double a[Max];
int prod;
void read()
{
prod = 1;
f>>n>>k;
int i;
for(i=1;i<=n;i++)
{
f>>a[i];
}
}
vector< double > prob;
int choose[Max];
double choose_product = 1;
long double ans = 0;
void generate_bkt(int current)
{
if(current == k + 1)
{
ans += choose_product;
return;
}
double auxchoose = choose_product;
int start = choose[current - 1] + 1;
for(int i = start;i<=n;i++)
{
choose_product *= a[i];
choose[current] = i;
generate_bkt(current + 1);
choose_product = auxchoose;
}
}
void solve()
{
int cnt = 1;
int i;
for(i = (n-k+1);i<=n;i++)
cnt *= i;
for(i=1;i<=k;i++)
cnt /= i;
generate_bkt(1);
ans /= cnt;
cout<<fixed<<setprecision(10)<<ans<<'\n';
}
void restart()
{
}
int32_t main()
{
nos();
read();
solve();
restart();
return 0;
}