Pagini recente » Cod sursa (job #2144561) | Cod sursa (job #1372481) | Cod sursa (job #1688425) | Cod sursa (job #834317) | Cod sursa (job #727150)
Cod sursa(job #727150)
# include <iostream>
# include <fstream>
# include <iomanip>
# define Nmax 25
# define Egal(a,b) ((a)==(b)?true:false)
using namespace std;
ifstream f("dezastru.in");
ofstream g("dezastru.out");
int st[Nmax];
int n, k;
float prob = 0;
float pr[Nmax];
void citire ()
{
f >> n >> k;
for (int j=1; j<=n; j++)
{
f >> pr[j];
}
f.close();
}
bool valid (int m)
{
for(int j=1; j<m;j++)
{
if (st[j] >= st[m])
return false;
}
return true;
}
void calcul ()
{
float pr1 = pr[st[1]];
for (int j=2; j<=k; j++)
{
pr1 = (float) pr1 * pr[st[j]];
}
prob += (float) pr1 / n;
}
void scriere ()
{
g << setprecision (7) << prob << '\n';
g.close ();
}
void bktr (int niv)
{
for (int i=1; i<=n; i++)
{
st[niv] = i;
if (valid(niv))
{
if (niv == k)
calcul();
else
bktr(niv+1);
}
}
}
int main ()
{
citire();
bktr(1);
scriere();
return 0;
}