Pagini recente » Cod sursa (job #2815345) | Istoria paginii runda/oni_cl_11-12_zi2 | Cod sursa (job #2387839) | Cod sursa (job #2775461) | Cod sursa (job #2326846)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("dezastru.in");
ofstream fout("dezastru.out");
int n, k;
bool fr[30];
double p[30];
double rezultat;
vector<double> sol;
vector<double> f;
void bkt(int poz, int k);
void posibilitati(double &r);
int main()
{
fin>>n>>k;
for(int i=1; i<=n; i++) fin>>p[i];
bkt(0, k);
posibilitati(rezultat);
fout<<fixed<<setprecision(6)<<rezultat<<'\n';
return 0;
}
void posibilitati(double &r)
{
int cate=f.size();
for(int i=0; i<f.size(); i++) r+=f[i]/cate;
}
void bkt(int poz, int k)
{
if(poz==k)
{
double temp=sol[0];
for(int i=1; i<sol.size(); i++) temp*=sol[i];
f.push_back(temp);
return;
}
for(int i=1; i<=n; i++)
{
if(!fr[i])
{
sol.push_back(p[i]);
fr[i]=1;
bkt(poz+1, k);
sol.pop_back();
fr[i]=0;
}
}
}