Cod sursa(job #1651984)

Utilizator oanaroscaOana Rosca oanarosca Data 14 martie 2016 13:02:10
Problema Dezastru Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <fstream>
#include <iomanip>

using namespace std;

int n, k, l, comb[30][30], c;
double m[30][30], p[30];

int combinari (int n, int k) {
  comb[0][1] = 1;
  for (l = 1; l <= n; l++)
    for (c = 1; c <= k; c++)
      comb[l][c] = comb[l-1][c]+comb[l-1][c-1];
  return comb[n][k];
}

int main () {
  ifstream fi("dezastru.in");
  ofstream fo("dezastru.out");
  fi >> n >> k; m[0][1] = 1.0; k++;
  for (l = 1; l <= n; l++)
    fi >> p[l];
  for (l = 1; l <= n; l++)
    for (c = 1; c <= k; c++)
      m[l][c] = m[l-1][c]+m[l-1][c-1]*p[l];
  fo << fixed << setprecision(7) << m[n][k] / combinari(n, k);
  return 0;
}