Pagini recente » Cod sursa (job #463574) | Cod sursa (job #2331828) | Cod sursa (job #2057807) | Cod sursa (job #452476) | Cod sursa (job #2037851)
#include <fstream>
using namespace std;
ifstream fi("dezastru.in");
ofstream fo("dezastru.out");
int n,k,A[26],F[26],nr,i;
double P[26],sum;
double suma()
{
int i;
double p=1;
for(i=1;i<=k;i++)
p*=P[A[i]];
return p;
}
void bk(int poz)
{
int i,j;
if(poz==k+1)
{
sum+=suma();
nr++;
}
else
for(i=1;i<=n;i++)
if(F[i]==0 && i>A[poz-1])
{
A[poz]=i;
F[i]=1;
bk(poz+1);
F[i]=0;
}
}
int main()
{
fi>>n>>k;
for(i=1;i<=n;i++)
fi>>P[i];
bk(1);
fo<<(double)sum/nr;
fi.close();
fo.close();
return 0;
}