Cod sursa(job #1403676)

Utilizator felixiPuscasu Felix felixi Data 27 martie 2015 15:06:27
Problema Dezastru Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;

int N,K; double P[30][30],a[30];

double ff(){
    double res=1;
    for (int i=2; i<=N; i++){
        if (i<=K) res*=i;
        if (i<=N-K) res*=i;
        res/=i;
   }

   return res;
}

int main(){
    ifstream fin("dezastru.in");
    ofstream fout("dezastru.out");
    fin >> N >> K;


    int i,j;
    for (i=1; i<=N; i++) fin >> a[i];

    for (i=0; i<=N; i++) P[i][0]=1;

    for (i=1; i<=N; i++)
        for (j=1; j<=min(i,K); j++)
            P[i][j]=P[i-1][j]+P[i-1][j-1]*a[i];

    fout << std::fixed << std::setprecision(7) << P[N][K]*ff();

    return 0;
}