Cod sursa(job #2858851)

Utilizator rares89_Dumitriu Rares rares89_ Data 28 februarie 2022 15:26:11
Problema Dezastru Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("dezastru.in");
ofstream fout("dezastru.out");

int n, k, x[30], cnt;
double v[30], suma;

void calculare() {
    cnt++;
    double s = 1.0;
    for(int i = 1; i <= k; i++) {
        s *= v[x[i]];
    }
    suma += s;
}

void back(int pas) {
    for(int i = x[pas - 1] + 1; i <= n; i++) {
        x[pas] = i;
        if(pas < k) {
            back(pas + 1);
        } else {
            calculare();
        }
    }
}

int main() {
    fin >> n >> k;
    for(int i = 1; i <= n; i++) {
        fin >> v[i];
    }
    fin.close();
    back(1);
    fout << fixed << setprecision(6) << (suma / (cnt * 1.0));
    return 0;
}