Cod sursa(job #2451468)

Utilizator dey44andIoja Andrei-Iosif dey44and Data 26 august 2019 20:23:05
Problema Dezastru Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <fstream>

#define input "dezastru.in"
#define output "dezastru.out"
#define NMAX 30

using namespace std;

ifstream in(input);
ofstream out(output);

int N, K;
double prob[NMAX], DP[NMAX][NMAX], fact[NMAX];

void Read_Data()
{
    in >> N >> K;
    for(int i = 1; i <= N; i++)
        in >> prob[i];
}

void Solve()
{
    DP[0][0] = 1, fact[0] = 1;
    for(int i = 1; i <= N; i++)
    {
        fact[i] = i * fact[i-1];
        DP[i][0] = 1;
        for(int j = 1; j <= i; j++)
            DP[i][j] = DP[i-1][j] + DP[i-1][j-1] * prob[i];
    }
    double sol = DP[N][K] * fact[K] * fact[N-K] / fact[N];
    out << (double)sol;
}

int main()
{
    Read_Data();
    Solve();
    return 0;
}