Cod sursa(job #1961395)

Utilizator tgm000Tudor Mocioi tgm000 Data 11 aprilie 2017 09:03:14
Problema Dezastru Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include<cstdio>
double v[26];
int n,k;
double prob,p=1;
long long comb;
void bkt(int pas,int poz){
   if(pas==k+1)
      prob+=p;
   else{
      int i;
      for(i=poz+1;i<=n-k+pas;i++){
         p*=v[i];
         bkt(pas+1,i);
         p/=v[i];
      }
   }
}
int main(){
   int i;
   freopen("dezastru.in","r",stdin);
   freopen("dezastru.out","w",stdout);
   scanf("%d%d",&n,&k);
   for(i=1;i<=n;i++)
      scanf("%lf",&v[i]);
   bkt(1,0);
   if(k<n-k)
      k=n-k;
   comb=1;
   for(i=k+1;i<=n;i++)
      comb*=i;
   for(i=1;i<=n-k;i++)
      comb/=i;
   printf("%.6f",prob/comb);
   return 0;
}