Cod sursa(job #3338096)

Utilizator prodsevenStefan Albu prodseven Data 31 ianuarie 2026 13:50:06
Problema Dezastru Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <fstream>
#include <vector>

using namespace std;

ifstream cin("dezastru.in");
ofstream cout("dezastru.out");

int n, k;
vector<double> v;
vector<int> idx;
double prob;
int prob_divider = 0;

void solution_found() {
    double prod = 1;
    for (int i = 1 ; i <= k ; ++i) {
        prod *= v[idx[i]];
    }
    prob += prod;
    ++prob_divider;
}

void back(int poz) {
    if (poz > k) {
        solution_found();
        return;
    }
    for (int i = idx[poz - 1] + 1 ; i <= n ; ++i) {
        idx[poz] = i;
        back(poz + 1);
    }
}

int main() {
    cin >> n >> k;
    v.assign(n + 2, 0);
    idx.assign(n + 2, 0);
    for (int i = 1 ; i <= n ; ++i) {
        cin >> v[i];
    }
    back(1);
    cout << prob / prob_divider;
    return 0;
}