Pagini recente » Cod sursa (job #3197629) | Cod sursa (job #524261) | Cod sursa (job #52467) | Cod sursa (job #236367) | Cod sursa (job #489872)
Cod sursa(job #489872)
#include<fstream>
#include<iostream>
#include<iomanip>
using namespace std;
#define MAXN 26
//unsigned long long fact=1;
double probs[MAXN];
double total;
void comb(int *const v, const int n, const int k, const int cur)
{
if(cur==k)
{
double prod=1;
for(int i=1; i<=k; ++i)
{
//cout<<v[i]<<" ";
prod*=probs[v[i]];
}
//cout<<"\n";
total+=prod;
}
else
{
for(int i=v[cur]; i<n; ++i)
{
v[cur+1]=i+1;
comb(v,n,k,cur+1);
}
}
}
int main()
{
int n,k,v[MAXN];
fstream fin("dezastru.in", fstream::in);
fstream fout("dezastru.out", fstream::out);
fin>>n>>k;
for(int i=1; i<=n; ++i)
{
fin>>probs[i];
//cout<<probs[i]<<" ";
}
//cout<<endl;
/*for(int i=1;i<=25; ++i)
fact*=i;
cout<<fact<<endl;*/
for(int i=1; i<=k; ++i)
{
v[1]=i;
comb(v,n,k,1);
}
fout<<setiosflags(fstream::fixed)<<setprecision(6)<<total/n<<endl;
fin.close();
fout.close();
return 0;
}