Pagini recente » Cod sursa (job #1867231) | Cod sursa (job #161352) | Cod sursa (job #405383) | Cod sursa (job #66058) | Cod sursa (job #2350745)
#include <fstream>
#include <iomanip>
using namespace std;
ifstream fin( "dezastru.in" );
ofstream fout( "dezastru.out" );
const int NMAX = 26;
int N, K;
double p[NMAX];
int sol[NMAX];
double prob = 1;
double sum;
int nr;
void Read()
{
fin >> N >> K;
for( int i = 1; i <= N; ++i )
fin >> p[i];
fin.close();
}
void Backtrack( int k )
{
for( int i = sol[k - 1] + 1; i <= N; ++i )
{
sol[k] = i;
prob *= p[i];
if( k == K )
{
sum += prob;
nr++;
}
else Backtrack( k + 1 );
prob /= p[i];
}
}
int main()
{
Read();
Backtrack( 1 );
fout << fixed << setprecision(6) << ( double ) sum / nr << '\n';
return 0;
}