Pagini recente » Istoria paginii utilizator/sokka | Istoria paginii utilizator/throwawaycont | Cod sursa (job #641079) | Cod sursa (job #2697450) | Cod sursa (job #2685839)
#include <fstream>
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 = 1; i <= n; i++ ) {
if ( ap[i] )
continue;
comb[lvl] = i;
ap[i] = 1;
dp ( lvl+1, res * prob[i] );
ap[i] = 0;
}
}
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 << sol << "\n";
return 0;
}