Pagini recente » Cod sursa (job #957187) | Cod sursa (job #2434560) | Cod sursa (job #2177418) | Cod sursa (job #3133933) | Cod sursa (job #1822438)
#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;int var=1;
double produs()
{
int i;
double p=1;
for(i=1;i<=K;i++)
p=p*ss[i];
return p;
}
void backk(int k, int var)
{
int i;
if(k==K)
{
s=s+produs();
nrperm++;
return;
}
for(i=var;i<=n;i++)
{
if(b[i]==false)
{
b[i]=true;
ss[++k]=v[i];
var++;
backk(k,var);
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,1);
g<<setprecision(6)<<s/nrperm;
return 0;
}