Cod sursa(job #1961395)
Utilizator | 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;
}