Pagini recente » Borderou de evaluare (job #2240984) | Cod sursa (job #2705638)
#include <fstream>
#include <vector>
#include <algorithm>
#include <iomanip>
using namespace std;
ifstream be("dezastru.in");
ofstream ki("dezastru.out");
int a[20],n,k;
double pkedv=0,nevezo,kfakt,x[26];
void bt(int j,double prod)
{
if(j==k)
{
pkedv+=prod;
}
else {
int start= j==0 ? 0: a[j-1]+1;
for(int i=start;i<n;i++)
{
a[j]=i;
bt(j+1,prod*x[i]);
}
}
}
int main()
{
be>>n>>k;
for(int i=0;i<n;i++)
be>>x[i];
nevezo=1;
kfakt=1;
for(int i=n-k+1;i<=n;i++)
nevezo*=i;
for(int i=1;i<=k;i++)
kfakt*=i;
bt(0,1);
nevezo=1/nevezo;
ki<<setprecision(8)<<pkedv*kfakt*nevezo<<endl;
return 0;
}