Cod sursa(job #1681976)

Utilizator catu_bogdan_99Catu Bogdan catu_bogdan_99 Data 9 aprilie 2016 21:17:49
Problema Dezastru Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <cstdio>
#define DIM 30
using namespace std;

double v[DIM];
int n, k, var;

void backtracking( int niv, int last, double prob ){

    int i;

    if( niv > k ){
        v[0] += prob;
        var++;
        return ;
    }

    for( i = last + 1; i <= n - k + niv; ++i ){
        backtracking( niv + 1, i, prob * v[i] );
    }

}

int main()
{


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

    int  i, j;

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

    for( i = 1; i <= n; ++i ){
        scanf("%lf",&v[i]);
    }


    backtracking( 1, 0, 1.0 );

    printf("%.6lf",v[0]/(var*1.0));

    return 0;
}