Pagini recente » Cod sursa (job #2389585) | Cod sursa (job #2765448) | Cod sursa (job #123369) | Cod sursa (job #198028) | Cod sursa (job #761680)
Cod sursa(job #761680)
#include <cstdio>
#include <cstdlib>
using namespace std;
#define NMAX 32
int v[NMAX];
float P[NMAX];
int N, K;
double s = 0;
int n = 0;
void print(){
for(int i = 1; i < N; ++i)
for(int j = i+1; j <= N; ++j)
if(v[i] == v[j])
return;
double p = 1;
for(int i = 1; i <= K; ++i)
//printf("%d ", v[i]);
p *= P[v[i]];
s += p;
++n;
}
void back(int i){
if(i > N){
print();
return;
}
for(int j = 1; j <= N; ++j){
v[i] = j;
back(i+1);
}
}
int main(){
freopen( "dezastru.in", "rt", stdin );
freopen("dezastru.out", "wt", stdout );
scanf("%d %d", &N, &K);
for(int i = 1; i <= N; ++i)
scanf("%f", &P[i]);
back(1);
printf("%f", s/n);
return 0;
}