Cod sursa(job #1017207)

Utilizator nytr0gennytr0gen nytr0gen Data 27 octombrie 2013 15:07:36
Problema Dezastru Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <cstdio>
#define N 26

using namespace std;

bool b[N];
int T = 0, s[N], k, n;
float S = 0, v[N];

void back(int l) {
    int i;

    if (l == k) {
        float p = 1;
        for (i = 1; i <= k; ++i)
            p *= v[s[i]];
        S += p; ++T;
    }
    else if (l < k) {
        for (i = s[l]+1; i <= n; ++i) {
            s[l+1] = i;
            back(l+1);
        }
    }
}

int main() {
    freopen("dezastru.in", "r", stdin);
    freopen("dezastru.out", "w", stdout);

    scanf("%d%d", &n, &k);
    for (int i = 1; i <= n; ++i) {
        scanf("%f", &v[i]);
        b[i] = 1;
    }

    back(0);

    printf("%.*f", 6, S/T);

    return 0;
}