Cod sursa(job #1815405)

Utilizator Tiberiu02Tiberiu Musat Tiberiu02 Data 25 noiembrie 2016 10:25:52
Problema Dezastru Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
# include <iostream>
# include <fstream>

using namespace std;

# define MAX_N 25
long long c[1 + MAX_N][1 + MAX_N];
long double d[1 + MAX_N][1 + MAX_N];
double p[1 + MAX_N];

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

    int n, k, i, j;

    fin >> n >> k;

    for ( i = 1; i <= n; i ++ )
        fin >> p[i];

    for ( i = 0; i <= n; i ++ )
        c[i][0] = d[i][0] = 1;

    for ( i = 1; i <= n; i ++ )
        for ( j = 1; j <= k; j ++ ) {
            d[i][j] = d[i - 1][j - 1] * p[i] + d[i - 1][j];
            c[i][j] = c[i - 1][j] + c[i - 1][j - 1];
        }

    fout << d[n][k] / c[n][k];

    fin.close();
    fout.close();

    return 0;
}