Cod sursa(job #2647463)

Utilizator Mihai145Oprea Mihai Adrian Mihai145 Data 4 septembrie 2020 18:36:54
Problema Dezastru Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <fstream>
#include <iomanip>

using namespace std;

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

int N, K;
double v[27];
double dp[27][27];

int main()
{
    fin >> N >> K;
    fin.get();

    for(int i = 1; i <= N; i++)
        fin >> v[i];

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

    for(int i = 1; i <= N; i++)
        for(int j = 1; j <= K; j++)
            dp[i][j] = dp[i - 1][j] + v[i] * dp[i - 1][j - 1];

    double answer = dp[N][K];
    double q = 1;

    for(int i = 1; i <= N; i++)
    {
        q *= (double)i;
        if(i <= K)
            q /= (double)i;
        if(i <= N - K)
            q /= (double)i;
    }

    fout << answer / q;

    return 0;
}