Cod sursa(job #3036749)

Utilizator andrei_marciucMarciuc Andrei andrei_marciuc Data 24 martie 2023 22:24:13
Problema Dezastru Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <fstream>
using namespace std;

ifstream fin( "dezastru.in" );
ofstream fout( "dezastru.out" );

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

int main()
{
    fin >> n >> k;

    for( int i = 1; i <= n; i++ )
        fin >> P[ i ];
    
    for( int i = 0; i <= n; i++ )
        kkt[ i ][ 0 ] = dp[ i ][ 0 ] = 1;

    for( int i = 1; i <= n; i++ )
        for( int j = 1; j <= i; j++ ) {
            kkt[ i ][ j ] = kkt[ i - 1 ][ j ] + kkt[ i - 1 ][ j - 1 ];
            dp[ i ][ j ] = dp[ i - 1 ][ j ] + dp[ i - 1 ][ j - 1 ] * P[ i ];
        }
    
    fout << fixed << setprecision( 6 ) << dp[ n ][ k ] / (double)kkt[ n ][ k ];
    return 0;
}