Pagini recente » Cod sursa (job #3255279) | Cod sursa (job #2330734) | Cod sursa (job #1644893) | Cod sursa (job #30872) | Cod sursa (job #2211534)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("dezastru.in");
long long F[26],np;
int n,km,S[26];
float P[26],s;
long long fact(int a){
if(F[a]) return F[a];
else {
F[a]=fact(a-1)*a;
return F[a];
}
}
void bk(int k){
if(k<=km){
for(int i=S[k-1]+1;i<=n;i++){
S[k]=i;
bk(k+1);
S[k]=0;
}
}else{
float p=1;
for(int i=1;i<=km;i++) p*=P[S[i]];
s+=1.000000*(p*2)/np;
}
}
int main(){
freopen ("dezastru.out","w",stdout);
F[1]=1;
fin>>n>>km;
for(int i=1;i<=n;i++) fin>>P[i];
np = fact(n);
bk(1);
//cerr<<s;
printf("%.6f",s);
//cerr<<clock()*1000.0/CLOCKS_PER_SEC<<'\n';
return 0;
}