Cod sursa(job #2038572)

Utilizator TheOlarOlar Alexandru TheOlar Data 13 octombrie 2017 20:08:55
Problema Dezastru Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <iostream>
#include <fstream>

using namespace std;

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



int main () {
    long long p, P;
    double  v[30], mat[30][30];
    int  n, k, i, j;

    fin >> n >> k;
    for (i = 1; i <= n; i++)
        fin >> v[i];

    mat[0][0] = 1;
    for (i = 1; i <= n; i++)
        for (j = 1; j <= n; j++)
        {
            if (i == j)     mat[i][j] = mat[i-1][j-1] * v[i];
            else if (j == 1)     mat[i][j] = mat[i-1][j] + v[i];
            else mat[i][j] = mat[i-1][j] + v[i] * mat[i-1][j-1];
        }

    p = 1;
    for (i = k+1; i <= n; i++)
        p *= i;
    P = 1;
    for (i = 1; i <= n-k; i++)
        P *= i;

    p /= P;
    fout << mat[n][k] / p << endl;

    return 0;
}