Cod sursa(job #2451400)

Utilizator Senth30Denis-Florin Cringanu Senth30 Data 26 august 2019 16:29:39
Problema Dezastru Scor 100
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[30], fact[30];
double dp[30][30];

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

inline int crtfact(){
    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();
    crtfact();

    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;
}