Cod sursa(job #2778031)

Utilizator euyoTukanul euyo Data 27 septembrie 2021 19:03:46
Problema Dezastru Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <fstream>
#include <iomanip>

using namespace std;

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

const int LIM = 30;

double sum[LIM][LIM], p[LIM];
int C[LIM][LIM];

int main() {
  int n, k;

  fin >> n >> k;
  for ( int i = 1; i <= n; ++i ) {
	fin >> p[i];
    sum[i][1] = sum[i-1][1] + p[i];
	C[i][1] = i;
	C[i][0] = 1;
  }
  for ( int i = 2; i <= n; ++i ) {
	for ( int j = 2; j <= k; ++j ) {
	  sum[i][j] = sum[i-1][j] + sum[i-1][j-1] * p[i];
	  C[i][j] = C[i-1][j] + C[i-1][j-1];
	}
  }
  fout << setprecision(6) << fixed << sum[n][k] / C[n][k];
  fin.close();
  fout.close();
  return 0;
}