Pagini recente » Cod sursa (job #1706061) | Cod sursa (job #2444148) | Cod sursa (job #2284829) | Cod sursa (job #724495) | Cod sursa (job #652250)
Cod sursa(job #652250)
#include<iostream>
#include<fstream>
#include<iomanip>
using namespace std;
int n,k,st[26],x;
double s,v[26];
void adauga()
{
int i;
double p;
p=1;
for(i=1;i<=k;i++)
p=p*v[st[i]];
s=s+p;
x++;
}
int valid(int p)
{
int i;
for(i=1;i<=p-1;i++)
if(st[p]==st[i])
return 0;
return 1;
}
void bktr(int p)
{
int pval;
for(pval=1;pval<=n;pval++) {
st[p]=pval;
if(valid(p))
if(p==n)
adauga();
else bktr(p+1);
}
}
int main ()
{
int i;
ifstream f("dezastru.in");
ofstream g("dezastru.out");
f>>n>>k;
for(i=1;i<=n;i++)
f>>v[i];
f.close();
bktr(1);
g<<fixed;
g<<setprecision(6)<<s/x;
g.close();
return 0;
}