Cod sursa(job #2335407)

Utilizator Andrei-27Arhire Andrei Andrei-27 Data 4 februarie 2019 00:16:46
Problema Dezastru Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <bits/stdc++.h>
#define ll long long
using namespace std ;
const int N  = 30 ;
ifstream in ("dezastru.in") ;
ofstream out ("dezastru.out") ;

int n , k ;
double d [ N ] , cmb ;

void comb ( )
{
    cmb = n - k + 1 ;
    for ( int i = 2 ; i <= k ; ++ i)
        cmb *=  ( n - k + i ) , cmb /= i ;
}

int main ()
{
    float dd [ N ][ N ] ;
    dd [ 0 ][ 0 ] = 1 ;
    in >> n >> k ;
    for ( int i = 1 ; i <= n ; ++ i )   in >> d [ i ] , dd [ i ][ 0 ] = 1 ;

    for ( int i = 1 ; i <= n ; ++ i )
    for ( int j = 1 ; j <= i ; ++ j )
    {
        dd [ i ][ j ] = dd [ i - 1 ][ j - 1 ] * d [ i ] + dd [ i - 1 ][ j ] ; // pascal
    }
    comb() ;
    out << setprecision( 6 ) << fixed << dd [ n ][ k ] / cmb << "\n" ;
    return 0 ;
}