Pagini recente » Cod sursa (job #1807471) | Cod sursa (job #2819999) | Cod sursa (job #237457) | Cod sursa (job #1392588) | Cod sursa (job #1895188)
#include <fstream>
using namespace std;
ifstream f("dezastru.in");
ofstream g("dezastru.out");
int N, K, P[26],nrp;
double pr[26],PR;
int valid(int k)
{
for(int i=1;i<k;i++)
if(P[i]==P[k])return 0;
return 1;
}
void back(int k)
{
for(int i=1;i<=N;i++)
{
P[k]=i;
if(valid(k))
if(k<N)back(k+1);
else
{
nrp++;
double v=1;
//calculam probab sa suprav primelor k atacuri
for(int j=1;j<=K;j++)v=v*pr[P[j]];
PR=PR+v;
}
}
}
int main()
{
int i;
//citire
f>>N>>K;
for(i = 1; i <= N; i++)f>>pr[i];
//generare permutari
back(1);
//afisare
g.precision(6);
g<<fixed<<PR/nrp;
return 0;
}