Cod sursa(job #1097553)

Utilizator chiriacandrei25Chiriac Andrei chiriacandrei25 Data 3 februarie 2014 16:27:13
Problema Dezastru Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include <cstdio>
#include <algorithm>

using namespace std;

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

int main()
{
    int N,K,i,j;
    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<=N;++i)
        nr[i][0]=dp[i][0]=1;
    for(i=1;i<=N;++i)
        for(j=1;j<=K;++j)
        {
            dp[i][j]=dp[i-1][j]+dp[i-1][j-1]*p[i];
            nr[i][j]=nr[i-1][j]+nr[i-1][j-1];
        }
    dp[N][K]=dp[N][K]/nr[N][K];
    printf("%.6lf\n", dp[N][K]);
    return 0;
}