Cod sursa(job #1076169)

Utilizator nytr0gennytr0gen nytr0gen Data 9 ianuarie 2014 22:29:31
Problema Dezastru Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <cstdio>
using namespace std;

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

    int n, k;
    scanf("%d %d", &n, &k);

    int i;
    float v[27];
    for (i = 0; i < n; ++i) {
        scanf("%f", &v[i]);
    }

    int b;
    float s, I = 0, S = 0;
    for (b = 1; b <= (1<<n); b++) {
        if (__builtin_popcount(b) == k) {
            s = 1;
            for (i = 0; i < n; ++i) {
                if (b & (1<<i)) {
                    s *= (1.0)*v[i];
                }
            }
            S += s;
            ++I;
        }
    }

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

    return 0;
}