Pagini recente » Cod sursa (job #2748765) | Cod sursa (job #2684875) | Cod sursa (job #2960338) | Cod sursa (job #1938960) | Cod sursa (job #2156244)
#include <bits/stdc++.h>
using namespace std;
int n,k,i,j,lim,V[26];
double t[26],s;
int v[26];
int fq(int n)
{
int q=1;
for (int i=1; i<=n; i++)
q*=i;
return q;
}
double prq()
{
double pr=t[v[0]];
for (int i=1; i<k; i++)
pr*=t[v[i]];
return pr;
}
int main()
{
ifstream cin("dezastru.in");
ofstream cout("dezastru.out");
cin>>n>>k;
for (i=1; i<=n; i++)
cin>>t[i];
int fqk=fq(k);
int fqt=fq(n);
for(i=k; i<n; ++i) V[i]=1;
do {
int poz=-1;
for(i=0; i<n; ++i) if (!V[i]) v[++poz]=i+1;
if (poz+1==k) { s=s*1.0+(prq()/fqt)*fqk; }
}while(std::next_permutation(V,V+n));
cout<<fixed<<setprecision(6)<<s;
}