Pagini recente » Cod sursa (job #808499) | Cod sursa (job #1372436) | Cod sursa (job #949067) | Cod sursa (job #845581) | Cod sursa (job #1378392)
#include <iostream>
#include <fstream>
using namespace std;
int n,k,total;
double dez[30],prob[30][30];
int cate[30][30];
int main()
{
ifstream in("dezastru.in");
ofstream out("dezastru.out");
int i,j,total=0;
double acum=0.0;
in>>n>>k;
for (i=1;i<=n;i++)
{
in>>dez[i];
}
for (i=1;i<=n;i++)
{
prob[1][i]=dez[i];
cate[1][i]=1;
}
for (i=2;i<=k;i++)
{
for (j=i;j<=n;j++)
{
cate[i][j]=cate[i][j-1]+cate[i-1][j-1];
prob[i][j]=(cate[i][j-1]*prob[i][j-1]/dez[j-1]+cate[i-1][j-1]*prob[i-1][j-1])/(cate[i][j-1]+cate[i-1][j-1]);
prob[i][j]*=dez[j];
}
}
for (i=k;i<=n;i++)
{
total+=cate[k][i];
acum+=cate[k][i]*prob[k][i];
}
acum/=total;
out<<acum;
return 0;
}