Cod sursa(job #1841554)

Utilizator mihai.alphamihai craciun mihai.alpha Data 5 ianuarie 2017 18:50:24
Problema Dezastru Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <cstdio>
#define Q 25
double A[Q + 1][Q + 1];
double P[Q + 1];
int com[Q + 1][Q + 1];

int main()  {
//    freopen("dezastru.in", "r", stdin);
//    freopen("dezastru.out", "w", stdout);
    FILE *fi = fopen("dezastru.in", "r");
    FILE *fo = fopen("dezastru.out", "w");
    int n, k;

    fscanf(fi, "%d%d", &n, &k);
    for(int i = 1;i <= n;i++)
        fscanf(fi, "%lf", &P[i]);
    com[1][1] = com[1][0] = 1;
    A[1][1] = P[1];
    A[1][0] = 1;
    for(int i = 2;i <= n;i++)  {
        A[i][0] = com[i][0] = 1;
        for(int j = 1;j <= k;j++)  {
            A[i][j] = A[i - 1][j] + A[i - 1][j - 1] * P[i];
            com[i][j] = com[i - 1][j] + com[i - 1][j - 1];
        }
    }

    double rasp;
    rasp = A[n][k] / (double)com[n][k];
    fprintf(fo, "%.6lf", rasp);
    return 0;
}