Cod sursa(job #317537)

Utilizator aladinaladin aladinn aladin Data 23 mai 2009 21:10:54
Problema Dezastru Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
   #include<stdio.h>    
   
   long long  fact(int a,int b)
   {int q=1;
    for (;b>=a;b--) q*=b;
    return q;
   }	
   
   int main()    
    {int j,i,m,n;     
	 double a[30][30],p[30];
	 long long q;
     freopen("dezastru.in","r",stdin);    
     freopen("dezastru.out","w",stdout);    
     scanf("%d%d",&n,&m);   
	 for (i=1;i<=n;i++) scanf("%f",&p[i]);
     a[0][0]=1; a[1][0]=1;  
     for (i=1;i<=n;i++) 
	 {a[i][0]=1; 
	  for (j=1;j<=i;j++)
        if (j<=m)  a[i][j]=a[i-1][j]+a[i-1][j-1]*p[i];
        else break;  
	 }
	 if (m>n / 2) q=fact(m+1,n) / fact(1,n-m)  ;
                      else q=fact(n-m+1,n) / fact(1,m);  
	  printf("%.7lf",a[n][m]/q);  
     return 0;    
     }