Pagini recente » Cod sursa (job #1535281) | Cod sursa (job #1864397) | Cod sursa (job #2306779) | Cod sursa (job #1137934) | Cod sursa (job #1368048)
#include <fstream>
using namespace std;
ifstream fin("dezastru.in");
ofstream fout("dezastru.out");
int i, st[28],n,p,nr=0;
double v[28],sum;
bool valid(int k)
{
for(int i=1;i<k;i++)
if(st[i]==st[k])
return false;
return true;
}
void scrie()
{ double prod=1.00;
for(int i=1;i<=p;i++)
prod*=v[st[i]];
sum+=prod;
nr++;
}
void back(int k)
{
for(int i=1;i<=n;i++)
{
st[k]=i;
if(valid(k))
if(k==n)
scrie();
else
back(k+1);
}
}
int main()
{
fin>>n;
fin>>p;
for(i=1;i<=n;i++)
fin>>v[i];
back(1);
fout<<sum/nr;
return 0;
}