Cod sursa(job #1023761)

Utilizator tudorv96Tudor Varan tudorv96 Data 7 noiembrie 2013 18:05:25
Problema Dezastru Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <fstream>
using namespace std;

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

const int N = 27;
long double ap[N], v[N], d[N][N];
int n, k, f[N];

int main() {
    fin >> n >> k;
    f[0] = 1;
    for (int i = 1; i <= n; ++i) {
        fin >> v[i];
        f[i] = f[i-1] * i;
    }
    d[0][0] = 1;
    for (int i = 1; i <= n; ++i) {
        d[i][0] = 1;
        for (int j = 1; j <= n; ++j)
            d[i][j] = d[i-1][j] + d[i-1][j-1] * v[i];
    }
    ap[1] = f[n] / n;
    ap[n] = f[n];
    if (k != n)
        for (int i = 2; i <= k; ++i)
            ap[i] = ap[i - 1] * i / (n - i + 1);
    fout << d[n][k] * ap[k] / f[n];
}