Cod sursa(job #953568)

Utilizator crisbodnarCristian Bodnar crisbodnar Data 26 mai 2013 17:03:04
Problema Dezastru Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <iostream>
#include <fstream>
#include <iomanip>

using namespace std;

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

int n, m;
long double p[27], a[27][27], rez;

int main()
{
    fin>>n>>m;
    for(int i=1; i<= n; i++)
        fin>>p[i];

    a[0][0] = 1;
    for(int i=1; i<=n; i++)
    {
        a[i][0] = 1;
        for(int j=1; j<=m; j++)
            a[i][j] = a[i-1][j] + a[i-1][j-1] * p[i];
    }

    unsigned long long nr = 1, k=1, comb;
    for(int i=m+1; i<=n; i++)
        nr *= (unsigned long long)i;
    for(int i=2; i<=n-m; i++)
        nr /= (unsigned long long)i;

    rez = (long double)(a[n][m] / nr);
    fout<<setprecision(12)<<fixed<<rez;

    return 0;
}