Pagini recente » Cod sursa (job #1383258) | Cod sursa (job #2592387) | Cod sursa (job #2267221) | Cod sursa (job #990076) | Cod sursa (job #2324488)
#include <fstream>
using namespace std;
ifstream fin("dezastru.in");
ofstream fout("dezastru.out");
const int NMAX=25;
int st[NMAX+5];
double v[NMAX+5];
bool viz[NMAX+5];
int n, k, nr;
double s;
void sol()
{
int i;
double p=1;
nr++;
for(i=1;i<=k;i++)
p=p*v[st[i]];
s=s+p;
}
void backt(int x)
{
if(x==k+1)
sol();
else
{
int i;
for(i=1;i<=n;i++)
{
if(viz[i]==0)
{
st[x]=i;
viz[i]=1;
backt(x+1);
viz[i]=0;
}
}
}
}
int main()
{
int i;
fin>>n>>k;
for(i=1;i<=n;i++)
fin>>v[i];
backt(1);
fout<<s/nr<<"\n";
return 0;
}