Cod sursa(job #983142)

Utilizator goguGogu Marian gogu Data 10 august 2013 22:27:24
Problema Dezastru Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <cstdio>
#include <vector>
#include <cstring>
#include <cstdlib>
#include <set>
#include <map>
#include <algorithm>
 
using namespace std;

int N, K;
double prob[30];
double sol[30][30];
 
int main() {
   freopen("dezastru.in", "rb", stdin);
   freopen("dezastru.out", "wb", stdout);
   scanf("%d %d", &N, &K);
   for (int i = 1; i <= N; i++) {
      scanf("%lf", prob + i);
   }
   sol[0][0] = 1.0;
   for (int i = 1; i <= N; i++) {
      sol[i][0] = 1.0;
      for (int j = 1; j <= K && j <= i; j++) {
         sol[i][j] = sol[i - 1][j] + sol[i - 1][j - 1] * prob[i];
      }
   }

   double rez = sol[N][K];
   for (int i = 1; i <= K; i++) {
      rez /= (N - i + 1);
      rez *= i;
   }
   printf("%.9f\n", rez);
}