Pagini recente » Cod sursa (job #837243) | Cod sursa (job #1499444) | Cod sursa (job #1065926) | Cod sursa (job #542240) | Cod sursa (job #1906361)
#include <fstream>
using namespace std;
int i,j,n,k;
double v[27],a[27][27],nr;
ifstream fin ("dezastru.in");
ofstream fout ("dezastru.out");
/*int cont (int pas){
for (int i=1;i<pas;i++)
if (x[i] == x[pas])
return 0;
return 1;
}
void back (int pas){
if (pas > n){
for (i=1;i<=k;i++)
sum += v[x[i]]/nr;
}
for (int i=1;i<=pas;i++){
x[pas] = i;
if (cont(pas))
back (pas+1);
}
}*/
int main (){
fin>>n>>k;
for (i=1;i<=n;i++)
fin>>v[i];
// generam submultimi cu backtracking
//back (1);
for (i=0;i<=n;i++)
a[i][0] = 1;
for (i=1;i<=n;i++)
for (j=1;j<=k;j++)
a[i][j] = a[i-1][j] + a[i-1][j-1] * v[i];
// calculam combinari de n luate cate k;
nr = 1;
for (i=k+1;i<=n;i++)
nr *= i;
for (i=1;i<=n-k;i++)
nr /= i;
fout<<a[n][k]/nr;
return 0;
}