Pagini recente » Cod sursa (job #2869008) | Cod sursa (job #2482140) | Cod sursa (job #1940437) | Cod sursa (job #1593666) | Cod sursa (job #2501512)
#include <bits/stdc++.h>
using namespace std;
int s[26],n,m;
bool used[26];
float posibil[26],p,pn=1;
void afis(int k)
{
for(int i=1;i<=k;++i)printf("%d ",s[i]);
printf("\n");
}
void test(int k)
{
float c=1;
for(int i=1;i<=k;++i)
c*=posibil[s[i]];
p+=2*c/pn;
}
void bkt(int k)
{
if(k == m+1)test(k-1);
else
for(int i=s[k-1]+1;i<=n;++i)
{
s[k]=i;
bkt(k+1);
}
}
void citire()
{
scanf("%d %d",&n,&m);
for(int i=1;i<=n;++i)
scanf("%f",&posibil[i]);
for(int i = n-m+1;i<=n;++i)
pn*=i;
}
int main()
{
freopen("dezastru.in","r",stdin);
freopen("dezastru.out","w",stdout);
citire();
bkt(1);
cout << setprecision(6) << fixed;
printf("%f ",p);
return 0;
}