Cod sursa(job #1097548)

Utilizator chiriacandrei25Chiriac Andrei chiriacandrei25 Data 3 februarie 2014 16:20:46
Problema Dezastru Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include <cstdio>
#include <algorithm>

using namespace std;

double p[30],dp[30][30];

int main()
{
    int N,K,i,j,pr=1;
    freopen ("dezastru.in","r",stdin);
    freopen ("dezastru.out","w",stdout);
    scanf("%d%d", &N,&K);
    for(i=1;i<=N;++i)
        scanf("%lf", &p[i]);
    for(i=0;i<=27;++i)
        dp[i][0]=1;
    for(i=1;i<=N;++i)
        for(j=1;j<=K && j<=i;++j)
            dp[i][j]=dp[i-1][j]+dp[i-1][j-1]*p[i];
    for(i=N;i>N-K;--i)
        pr*=i;
    for(i=2;i<=K;++i)
        pr/=i;
    dp[N][K]=dp[N][K]/pr;
    printf("%.6lf\n", dp[N][K]);
    return 0;
}