Cod sursa(job #43562)

Utilizator pauldbPaul-Dan Baltescu pauldb Data 30 martie 2007 11:51:49
Problema Dezastru Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <stdio.h>

#define maxn 30
#define db double 

int n,m;
db c[maxn][maxn],p[maxn];

int main()
{
    freopen("dezastru.in","r",stdin);
    freopen("dezastru.out","w",stdout);
    
    scanf("%d %d ",&n,&m);
    int i,j;
    
    for (i=1;i<=n;i++) scanf("%lf ",&p[i]);
    
    c[0][0]=1;
    
    for (i=0;i<n;i++)
      for (j=0;j<=i;j++)
      {
          c[i+1][j]+=c[i][j];
          c[i+1][j+1]+=c[i][j]*p[i+1];      
      }
      
    for (i=1;i<=m;i++) c[n][m]*=i;
    for (i=1;i<=n;i++) c[n][m]/=i;
    for (i=1;i<=n-m;i++) c[n][m]*=i;
    
    printf("%.6lf\n",c[n][m]);
    
    return 0;
}