Pagini recente » Cod sursa (job #3239454) | Cod sursa (job #2192199) | Cod sursa (job #27268) | Cod sursa (job #3182640) | Cod sursa (job #729745)
Cod sursa(job #729745)
#include<cstdio>
double f[30],p[30],prob;
int n,e,k,i;
int v[30];
int evalid(int i) {
if (v[i] > n) return 0;
for(int j = 1; j < i; ++j)
if (v[j] == v[i]) return 0;
return 1;
}
int main() {
freopen("dezastru.in","r",stdin);
freopen("dezastru.out","w",stdout);
scanf("%d %d",&n,&k);
for(i=1;i<=n;++i){
scanf("%lf",&f[i]);
}
for(i=1;i<=28;++i){
p[i]=1;
}
int st = 1;
while(st > 0) {
v[st]++;
if(evalid(st)) {
if (st == n) {
++e;
for(i=1;i<=k;++i){
p[e]*=f[v[i]];
}
}
else
st++;
}
else
if (v[st] > n) {
v[st] = 0;
st--;
}
}
for(i=1;i<=e;++i){
prob+=p[i]/e;
}
printf("%lf",prob);
return 0;
}