Cod sursa(job #2244170)

Utilizator Robert_VRVRobert Vadastreanu Robert_VRV Data 22 septembrie 2018 12:55:15
Problema Dezastru Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include <fstream>

double dp[1 + 25][1 + 25];

int main() {

  std::ifstream fin("dezastru.in");
  std::ofstream fout("dezastru.out");

  int n, k;
  fin >> n >> k;
  double p[1 + n];
  for (int i = 1; i <= n; i++)
    fin >> p[i];
  fin.close();

  dp[0][0] = 1;
  for (int num = 1; num <= k; num++)
    for (int i = 1; i <= n; i++)
      for (int j = 0; j < i; j++)
        dp[num][i] += dp[num - 1][j] * p[i] * num / (n - num + 1);


  double answer = 0;
  for (int i = 1; i <= n; i++)
    answer += dp[k][i];

  fout << answer << '\n';
  fout.close();

  return 0;
}