Cod sursa(job #831738)

Utilizator sebii_cSebastian Claici sebii_c Data 9 decembrie 2012 01:43:34
Problema Dezastru Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.54 kb
#include <cstdio>
#include <cstring>

int n, k, nr;
double res = 0.0;
double v[25];

inline void back(int l, double p, int last)
{
    if (l == k + 1) {
        res += p;
        nr++;
    } else {
        for (int i = last + 1; i <= n - k + l; ++i)
            back(l + 1, p * v[i], i);
    }
}

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("%lf", &v[i]);
    back(1, 1, 0);
    printf("%lf\n", res / nr);
    
    return 0;
}