Cod sursa(job #254142)

Utilizator taloibogdanTaloi Bogdan Cristian taloibogdan Data 6 februarie 2009 20:52:45
Problema Dezastru Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include<stdio.h>
long n,k,i,j,aa;
double a[100],b[100][100],s;
int main()
{
 freopen("dezastru.in","r",stdin);
 freopen("dezastru.out","w",stdout);
 scanf("%ld%ld",&n,&k);
 for(i=1;i<=n;++i)
    {scanf("%lf",&a[i]);
     b[0][i]=1;}
 b[0][0]=1;
 for(i=1;i<=k;++i)
    for(j=1;j<=n;++j)
       b[i][j]=b[i-1][j-1]*a[j]+b[i][j-1];
 aa=n-k;
 s=b[k][n];
 for(i=2;i<=aa;++i)s*=i;
 for(i=k+1;i<=n;++i)s/=i;
 /*for(i=1;i<=k;++i)c[i]=i;
 --c[k];
 ok=0;
 while(!ok)
 {for(i=k;i>0&&c[i]==n-(k-i);--i);
 if(i==0)ok=1;
     else
     {++c[i];
      for(j=i+1;j<=k;++j)c[j]=c[j-1]+1;
      p=1;
      for(j=1;j<=k;++j)p*=a[c[j]];
      s+=p;
      ++nr;}
 } */
 printf("%.6lf",s);
 return 0;
}