Cod sursa(job #2436972)

Utilizator ApostolIlieDanielApostol Daniel ApostolIlieDaniel Data 7 iulie 2019 20:57:31
Problema Dezastru Scor 70
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.6 kb
#include <bits/stdc++.h>

using namespace std;

typedef long double ld;
const int MAX_N = 25;
int nr;
ld ans;
int n, k;
ld a[1 + MAX_N];
void bkt (int x, int lst, ld p) {
    if (x == k) {
        ans += p;
        nr++;
        return;
    }
    for (int i = lst + 1; i <= n - k + x + 1; i++)
        bkt (x + 1, i, p * a[i]);
}

int main() {
    freopen ("dezastru.in", "r", stdin);
    freopen ("dezastru.out", "w", stdout);
    cin >> n >> k;
    for (int i = 1; i <= n; i++)
        cin >> a[i];
    bkt (0, 0, 1.0);
    cout << fixed << setprecision (6) << ans / nr;
    return 0;
}