Cod sursa(job #1094886)

Utilizator beldeabogdanBogdan Beldea beldeabogdan Data 29 ianuarie 2014 22:59:59
Problema Dezastru Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <cstdio>
#define nmax 30
using namespace std;

double p[nmax];
double v[nmax][nmax];
unsigned int nr[nmax][nmax];
int n,k;

int main() {
    freopen("dezastru.in","r",stdin);
    freopen("dezastru.out","w",stdout);
    scanf("%d %d",&n,&k);
    v[0][0] = (double) 1;
    nr[0][0] = 1;
    for (int i=1;i<=n;i++) {
        scanf("%lf",&p[i]);
        v[i][0] = (double) 1;
        nr[i][0] = 1;
    }
    for (int i=1;i<=n;i++) for (int j=1;j<=k;j++) {
        v[i][j] = v[i-1][j] + v[i-1][j-1]*p[i];
        nr[i][j] = nr[i-1][j] + nr[i-1][j-1];
    }
    printf("%.6lf\n",v[n][k]/nr[n][k]);
    return 0;
}