Cod sursa(job #2451394)

Utilizator Senth30Denis-Florin Cringanu Senth30 Data 26 august 2019 16:25:48
Problema Dezastru Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <bits/stdc++.h>

using namespace std;

int N, K;
double v[25], fact[25];
double dp[25][25];

inline int read(){
    scanf("%d %d", &N, &K);
    for(int i = 1; i <= N; i++)
        scanf("%lf ", &v[i]);
}

inline createfact(){
    fact[0] = 1;
    for(int i = 1; i <= N; i++)
        fact[i] = fact[i - 1] * i;
}

int main(){

    freopen("dezastru.in", "r", stdin);
    freopen("dezastru.out", "w", stdout);

    read();
    createfact();

    dp[0][0] = 1;
    for(int i = 1; i <= N; i++){
        dp[i][0] = 1;
        for(int j = 1; j <= i; j++)
            dp[i][j] = dp[i - 1][j] + v[i] * dp[i - 1][j - 1];
    }
    printf("%f", dp[N][K] / (fact[N] / (fact[K] * fact[N - K])));

    return 0;
}