Pagini recente » Cod sursa (job #2352830) | Cod sursa (job #1655109) | Cod sursa (job #138115) | Cod sursa (job #2842504) | Cod sursa (job #589401)
Cod sursa(job #589401)
#include<cstdio>
#include<bitset>
using namespace std;
#define Nmax 26
int st[Nmax], N, M, k, nraranj;
double A[Nmax], sum;
bitset<Nmax> viz;
void back(int k) {
if(k==M+1) {
++nraranj;
int i;
double prod=1;
for(i=1; i<=M; i++)
prod*=A[st[i]];
sum+=prod;
}
else {
int i;
for(i=1; i<=N; i++)
if(!viz[i]) {
st[k]=i;
viz[i]=1;
back(k+1);
viz[i]=0;
}
}
}
int main() {
freopen("dezastru.in","r",stdin);
freopen("dezastru.out","w",stdout);
int i;
scanf("%d %d",&N,&M);
for(i=1; i<=N; i++)
scanf("%lf",&A[i]);
back(1);
sum/=nraranj;
printf("%.6lf",sum);
return 0;
}