Cod sursa(job #243587)

Utilizator mika17Mihai Alex Ionescu mika17 Data 13 ianuarie 2009 17:35:53
Problema Dezastru Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.51 kb
#include <cstdio>

int N,K;
double dp[26][26],p[26];

int main()
{
 freopen("dezastru.in","r",stdin);
 freopen("dezastru.out","w",stdout);

 scanf("%d%d",&N,&K);

 for(int i = 1; i <= N ; ++i)
  scanf("%lf",&p[i]);

 for(int j = 0; j <= N; ++j)
  dp[0][j] = 1;

 for(int i = 1; i <= K; ++i)
  for(int j = 1; j <= N; ++j)
   dp[i][j] = dp[i-1][j-1] * p[j] + dp[i][j-1];

 double sol = (N-K)*dp[K][N];
 for(int i = K + 1; i <= N; ++i)
   sol /= (double)i;

 printf("%.6lf",sol);

 return 0;
}