Cod sursa(job #2507251)

Utilizator Dragos1226Dragos Chileban Dragos1226 Data 9 decembrie 2019 20:46:15
Problema Dezastru Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.6 kb
#include<fstream>
using namespace std;
ifstream in("dezastru.in");
ofstream out("dezastru.out");
const int NMax = 25;
int N, K;
float arr[NMax+5], f[NMax+5], DP[NMax+5][NMax+5];
void Solve() {
    f[0] = 1;
    for (int i = 1; i <= N; i++)
        f[i] = i * f[i-1];
    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] + DP[i-1][j-1]*arr[i];
    }
    out << DP[N][K]*f[K]*f[N-K]/f[N];
}

int main() {
    in >> N >> K;
    for (int i = 1; i <= N; i++)
        in >> arr[i];

    Solve();
}