Pagini recente » Cod sursa (job #692258) | Istoria paginii utilizator/elenacerchia | Cod sursa (job #902764) | Istoria paginii utilizator/mara_cimpean | Cod sursa (job #2685844)
#include <fstream>
#include <iomanip>
using namespace std;
ifstream fin ("dezastru.in");
ofstream fout ("dezastru.out");
int n, k, comb[26], ap[26], nrSol;
float prob[26], sol;
void dp ( int lvl, float res ) {
if ( lvl > k ) {
sol += res;
nrSol++;
return;
}
for ( int i = comb[lvl-1]+1; i <= n; i++ ) {
comb[lvl] = i;
dp ( lvl+1, res * prob[i] );
}
}
void solve () {
dp(1, 1);
sol /= nrSol;
}
void read () {
fin >> n >> k;
for (int i = 1; i <= n; i++)
fin >> prob[i];
}
int main()
{
read();
solve();
fout << setprecision(6) << fixed << sol << "\n";
return 0;
}