Pagini recente » Cod sursa (job #3156299) | Cod sursa (job #1779327) | Cod sursa (job #2903032) | Cod sursa (job #546449) | Cod sursa (job #3328349)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#include <iomanip>
#define ll long long
// #define gout cout
// #define fin cin
using namespace std;
ifstream fin("dezastru.in");
ofstream gout("dezastru.out");
long double p=0,x,fact;
int n,k;
void bck(vector<double>&v,vector<bool>&viz,vector<int>&r)
{
if(r.size()==k)
{
x=1;
for(auto i:r)x*=v[i];
p+=x/fact;
}
else
{
for(int i=0; i<n; ++i)if(!viz[i])
{
viz[i]=1;
r.push_back(i);
bck(v,viz,r);
r.pop_back();
viz[i]=0;
}
}
}
int main()
{
ios_base::sync_with_stdio(false);
fin.tie(0);
gout.tie(0);
fin>>n>>k;
vector<double>v(n);
vector<bool>viz(n,0);
vector<int>r;
for(int i=0; i<n; ++i)fin>>v[i];
fact=1;
for(long double i=1;i<=n;++i)fact*=i;
bck(v,viz,r);
gout<<fixed<<setprecision(6)<<p;
return 0;
}