Cod sursa(job #3328019)

Utilizator Radu_BicliBiclineru Radu Radu_Bicli Data 5 decembrie 2025 21:52:51
Problema Dezastru Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("dezastru.in");
ofstream fout("dezastru.out");
int n, k, i, fact[32];
double v[32], rasp;

static inline void Back(int ram, int pas = 1, double prod = 1) {
    if(pas == n + 1 && ram > 0) return;
    if(ram == 0) {
        rasp += prod;
        return;
    }
    Back(ram - 1, pas + 1, prod * v[pas]);
    Back(ram    , pas + 1, prod         );
}

int main() {
    ios_base::sync_with_stdio(false);
    fin.tie(nullptr);
    fout.tie(nullptr);

    fin >> n >> k;
    for(i = 1; i <= n; i++) fin >> v[i];

    fact[0] = 1;
    for(i = 1; i <= n; i++) fact[i] = i * fact[i - 1];

    Back(k);
    fout << setprecision(6) << fixed;
    fout << fact[k] * rasp / fact[n];

    return 0;
}