Pagini recente » Cod sursa (job #355422) | Cod sursa (job #2548480) | Cod sursa (job #593572) | Cod sursa (job #2152072) | Cod sursa (job #788727)
Cod sursa(job #788727)
#include<cstdio>
using namespace std;
double P[30],rez=0;
int comb[30],nr=0;
int n,K;
bool viz[30];
void add(){
int i;
double m=1.0;
for(i=1;i<=K;i++)
m*=P[comb[i]];
rez+=m;
}
void back(int k){
int i;
if(k==K+1)
add(),nr++;
else{
for(i=comb[k-1]+1;i<=n;i++){
if(!viz[i]){
comb[k]=i;
viz[i]=1;
back(k+1);
viz[i]=0;
}
}
}
}
int main(){
int i;
freopen("dezastru.in","r",stdin);
scanf("%d%d",&n,&K);
for(i=1;i<=n;i++)
scanf("%lf",&P[i]);
fclose(stdin);
back(1);
freopen("dezastru.out","w",stdout);
printf("%lf",rez/nr);
fclose(stdout);
return 0;
}