Cod sursa(job #1240324)

Utilizator gerd13David Gergely gerd13 Data 11 octombrie 2014 00:54:36
Problema Dezastru Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <fstream>
#include <algorithm>
#include <iomanip>

using namespace std ;

const int NMAX = 30 ;

ifstream cin("dezastru.in") ;
ofstream cout("dezastru.out") ;

float X[NMAX] ;
float D[NMAX][NMAX] ;
float A[NMAX] ;
short N, K ;

int main()
{
    cin >> N ;
    cin >> K ;

    for(int i = 1 ; i <= N ; ++ i)
        cin >> A[i] ;

    X[1] = 1 ;

    for(int i = 2 ; i <= N ; ++ i)
        X[i] = i * X[i - 1] ;

    for(int i = 0 ; i <= N ; ++ i)
        D[i][0] = 1 ;

    for(int i = 1 ; i <= N ; ++ i)
        for(int j = 1 ; j <= N ; ++ j)
            D[i][j] = D[i - 1][j - 1] * A[i] + D[i - 1][j] ;

    cout << setprecision(6) << D[N][K] / (X[N] / (X[K] * X[N - K])) << '\n' ;



    cin.close() ;
    cout.close() ;
    return 0 ;
}