Cod sursa(job #848556)

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

#define MAXN 32

int N, K;
double p[MAXN];

double SUM; int NR;

void back( int k, int l, double P )
{
    if (k == K)
    {
        NR++;
        SUM += P;
        return;
    }

    for (int i = l + 1; i <= N - K + k; i++)
        back( k + 1, i, P * p[i] );
}

int main()
{
    freopen("dezastru.in", "rt", stdin);
    freopen("dezastru.out", "wt", stdout);

    scanf("%d %d", &N, &K);
    for (int i = 0; i < N; i++)
        scanf("%lf", p + i);

    back(0, -1, 1);

    printf("%.6lf\n", SUM / NR);
    return 0;
}