Mai intai trebuie sa te autentifici.
Cod sursa(job #2505087)
Utilizator | Data | 6 decembrie 2019 09:58:51 | |
---|---|---|---|
Problema | Dezastru | Scor | 40 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.73 kb |
#include <fstream>
using namespace std;
ifstream cin ("dezastru.in");
ofstream cout ("dezastru.out");
int n, k;
long long comb = 1;
double ans;
double p[30];
void bkt(int niv, double prod, int lst) {
if(niv == k + 1) {
ans += prod;
return;
}
for(int i = lst + 1; i <= n - k + niv; i++)
bkt(niv + 1, prod * p[i], i);
}
int main() {
cin >> n >> k;
for(int i = 1; i <= n; i++)
cin >> p[i];
if(2 * k > n) {
for(int i = n; i > k; i--)
comb *= i;
for(int i = 2; i <= n - k; i++)
comb /= i;
} else {
for(int i = n; i > n - k; i++)
comb *= i;
for(int i = 2; i <= k; i++)
comb /= i;
}
bkt(1, 1, 0);
cout << ans / comb;
return 0;
}