Pagini recente » Cod sursa (job #2571445) | Cod sursa (job #1757977) | Cod sursa (job #1163760) | Cod sursa (job #1934327) | Cod sursa (job #1822430)
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
int n,K; double v[25],s=0,ss[25];
bool b[25];int nrperm=0;
double produs()
{
int i;
double p=1;
for(i=1;i<=K;i++)
p=p*ss[i];
return p;
}
void backk(int k)
{
int i;
if(k==K)
{
s=s+produs();
nrperm++;
//cout<<nrperm<<" ";
//cout<<s<<" ";
return;
}
for(i=1;i<=n;i++)
{
if(b[i]==false)
{
b[i]=true;
ss[++k]=v[i];
//cout<<ss[i]<<" ";
backk(k);
b[i]=false;
k--;
}
}
}
int main()
{
ifstream f("dezastru.in");
ofstream g("dezastru.out");
int i;
f>>n>>K;
for(i=1;i<=n;i++)
f>>v[i];
backk(0);
g<<setprecision(6)<<s/nrperm;
return 0;
}