Cod sursa(job #1251892)

Utilizator alexb97Alexandru Buhai alexb97 Data 29 octombrie 2014 23:33:32
Problema Dezastru Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <fstream>
#include <cmath>
#include <algorithm>
#include <iomanip>
using namespace std;

ifstream is("dezastru.in");
ofstream os("dezastru.out");

int n, p;
double c[26][26], nr[26];
double comb[26];

int main()
{
    is >> n >> p;
    for ( int i = 1; i <= n; ++i )
        is >> nr[i];
    comb[1] = 1;
    for ( int i = 2; i <= n; ++i )
        comb[i] = i * comb[i-1];
    for ( int i = 0; i <= n; ++i )
        c[i][0] = 1;
    for ( int i = 1; i <= n; ++i )
        for ( int j = 1; j <= n; ++j )
            c[i][j] = c[i-1][j-1] * nr[i] + c[i-1][j];
    os << setprecision(6) << c[n][p] / (comb[n]/(comb[p]*comb[n-p]));

    is.close();
    os.close();
    return 0;
}