Cod sursa(job #1097546)
| Utilizator | Data | 3 februarie 2014 16:16:35 | |
|---|---|---|---|
| Problema | Dezastru | Scor | 50 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.6 kb |
#include <cstdio>
#include <algorithm>
using namespace std;
int main()
{
int N,K,i,j,pr=1;
double p[30],dp[30][30];
freopen ("dezastru.in","r",stdin);
freopen ("dezastru.out","w",stdout);
scanf("%d%d", &N,&K);
for(i=1;i<=N;++i)
scanf("%lf", &p[i]);
for(i=0;i<=27;++i)
dp[i][0]=1;
for(i=1;i<=N;++i)
for(j=1;j<=K && j<=i;++j)
dp[i][j]=dp[i-1][j]+dp[i-1][j-1]*p[i];
for(i=N;i>N-K;--i)
pr*=i;
for(i=2;i<=K;++i)
pr/=i;
dp[N][K]=dp[N][K]/pr;
printf("%.6lf\n", dp[N][K]);
return 0;
}
