Cod sursa(job #1995771)

Utilizator FlorinHajaFlorin Gabriel Haja FlorinHaja Data 29 iunie 2017 06:52:36
Problema Dezastru Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <fstream>
#include <iostream>
#include <iomanip>

using namespace std;

ifstream f("dezastru.in");
ofstream g("dezastru.out");

double a[30];
long double avg;
int v[30], n, k, i;
long long Ref, nr;

inline void bkt(int x) {
    int i;
    double s = 1;
    if (x == k+1) {
        nr++;
        for (i = 1; i <= k; i++)
            s *= a[v[i]];
        avg += s;
        return;
    }
    for (i = v[x-1]+1; i <= n-(k-x); i++) {
        v[x] = i;
        bkt(x+1);
    }
}

int main() {
    f >> n >> k;
    Ref = 1;
    for (i = 2; i <= k; i++)
        Ref *= i;
    for (i = 1; i <= n; i++)
        f >> a[i];

    bkt(1);
    g << fixed << setprecision(6) << avg/nr;
}