Pagini recente » Cod sursa (job #979975) | Cod sursa (job #736143) | Cod sursa (job #484227) | Cod sursa (job #2879371) | Cod sursa (job #2727659)
#include <bits/stdc++.h>
//#pragma GCC target ("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
#define ll long long
#define ld long double
using namespace std;
ifstream fin ("dezastru.in");
ofstream fout ("dezastru.out");
int n, k, a[26];
double prob[26], ans, aux;
void backt (int p, double prod) {
if (p ==k + 1) {
ans += prod * aux;
return;
}
for (int i = a[p - 1] + 1; i <= n; ++i) {
a[p] = i;
backt(p + 1, prod * prob[i]);
}
}
int main()
{
fin >> n >> k;
aux = 1;
for (int i = 1; i <= k; i++)
aux *= i;
for (int i = n - k + 1; i <= n;i++)
aux = 1.0 * aux / i;
for (int i = 1; i <= n; i++)
fin >> prob[i];
backt(1, 1);
fout<< fixed << setprecision(9) << ans << "\n";
return 0;
}