Pagini recente » Cod sursa (job #1507159) | Cod sursa (job #1823206) | Cod sursa (job #2394825) | Cod sursa (job #872113) | Cod sursa (job #741638)
Cod sursa(job #741638)
#include <fstream>
using namespace std;
int x[100], n, m;
double prob[40], probp[11414], probfin=0;
int contor=0;
ifstream f("dezastru.in");
ofstream g("dezastru.out");
bool ok()
{
int i, j;
for(i=1; i<m; i++)
{
for(j=i+1; j<=m; j++)
{
if(x[i]==x[j])
return false;
}
}
return true;
}
void back(int k)
{
int i, j;
for(i=1; i<=n; i++)
{
x[k]=i;
if(k==m)
{
if(ok())
{
probp[contor]=1;
for(j=1; j<=m; j++)
{
probp[contor]*=prob[x[j]];
}
contor++;
}
}
else
back(k+1);
}
}
int main()
{
f>>n>>m;
int i;
for(i=1; i<=n; i++)
{
f>>prob[i];
}
back(1);
for(i=0; i<contor; i++)
{
probp[i]/=contor;
probfin+=probp[i];
}
g.precision(6);
g<<fixed<<probfin;
}