Cod sursa(job #1566248)

Utilizator mariapascuMaria Pascu mariapascu Data 11 ianuarie 2016 21:58:16
Problema Dezastru Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <fstream>
using namespace std;

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

int n, k;
double v[28], a[28][28];

int cmb();

int main() {
    fin >> n >> k;
    for (int i = 1; i <= n; i++)
        fin >> v[i];
    a[1][0] = 1;
    a[1][1] = v[1];
    for (int i = 2; i <= n; i++)
    {
        a[i][0] = 1;
        for (int j = 1; j <= min(k, i); j++)
            a[i][j] = a[i - 1][j] + v[i] * a[i - 1][j - 1];
    }
    fout << a[n][k] / cmb();
    fin.close();
    fout.close();
    return 0;
}

int cmb() {
    int c = 1;
    for (int i = max(k, n - k) + 1; i <= n; i++)
        c *= i;
    for (int i = 2; i <= min(k, n - k); i++)
        c /= i;
    return c;
}