Cod sursa(job #3175264)

Utilizator Beverita2345Bretan Alexandru Beverita2345 Data 25 noiembrie 2023 15:45:54
Problema Dezastru Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <fstream>
#include <iomanip>

using namespace std ;

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

int n, k, P[27][27] ;
double v[27], dp[27][27] ;

int main()
{

    cin >> n >> k ;

    for (int i = 1 ; i <= n ; i ++)
        cin >> v[i] ;

    for (int i = 0 ; i <= n + 1 ; i ++)
    {

        P[i][0] = P[i][i] = 1 ;

        for (int j = 1 ; j < i ; j ++)
            P[i][j] = P[i - 1][j - 1] + P[i - 1][j] ;

    }

    for (int i = 0 ; i <= n ; i ++)
        dp[i][0] = 1 ;

    for (int i = 1 ; i <= n ; i ++)
        for (int j = 1 ; j <= min (i, k) ; j ++)
            dp[i][j] = dp[i - 1][j] + dp[i - 1][j - 1] * v[i] ;

    cout << setprecision(6) << fixed << dp[n][k] / (double) P[n][k] ;

    return 0 ;

}