Pagini recente » Cod sursa (job #1106369) | Cod sursa (job #1126106) | Cod sursa (job #25611) | Cod sursa (job #2323610) | Cod sursa (job #2325803)
#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]];
// fout<<st[i]<<" ";
}
// fout<<"\n";
s=s+p;
}
void backt(int x)
{
if(x==k+1)
sol();
else
{
int i;
for(i=st[x-1]+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;
}