Cod sursa(job #848558)

Utilizator CosminRusuCosmin Rusu CosminRusu Data 5 ianuarie 2013 16:16:25
Problema Dezastru Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include <stdio.h>

#define doubl double

int N, K;

doubl a[40];

doubl S = 0;

int nr = 0;

inline void back(int k, doubl jeg, int last)
{
    if (k == K + 1) {
        S += jeg;
        nr++;
    } else {
        for (int i = last + 1; i <= N - K + k; i++)
            back(k + 1, jeg * a[i], i);
    }
}

int main()
{
    int i;

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

    scanf("%d %d", &N, &K);

    for (i = 1; i <= N; i++) scanf("%lf", &a[i]);

    back(1, 1, 0);

    printf("%lf\n", S / nr);

fclose(stdin);
fclose(stdout);
return 0;
}