Cod sursa(job #1681983)

Utilizator catu_bogdan_99Catu Bogdan catu_bogdan_99 Data 9 aprilie 2016 21:21:14
Problema Dezastru Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <cstdio>
using namespace std;

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

inline 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 );

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

    return 0;
}