Pagini recente » Cod sursa (job #2553108) | Cod sursa (job #1420602) | Cod sursa (job #3186939) | Cod sursa (job #1405335) | Cod sursa (job #1739007)
#include <fstream>
#include <iomanip>
using namespace std;
ifstream fin("dezastru.in");
ofstream fout("dezastru.out");
int n,k,viz[26],x[26];
double v[26],prod,P;
unsigned long long p1;
int cont(int p)
{
return 1;
}
int solutie(int p)
{
if(p==k)
return 1;
return 0;
}
void afis(int p)
{
prod=1;
for(int i=1;i<=k;i++)
prod*=v[x[i]];
P+=prod;
}
void back(int p)
{
for(int i=1;i<=n;i++)
if(!viz[i])
{
x[p]=i;
viz[i]=1;
if(cont(p))
if(solutie(p))afis(p);
else
back(p+1);
viz[i]=0;
}
}
int main()
{
fin>>n>>k;
p1=1;
for(int i=1;i<=n;i++)
p1=p1*i;
for(int i=1;i<=n;i++)
fin>>v[i];
back(1);
fout<<setprecision(6)<<P/p1;
return 0;
}