Pagini recente » Cod sursa (job #1591792) | Cod sursa (job #917512) | Cod sursa (job #935566) | Cod sursa (job #1397089) | Cod sursa (job #1258703)
#include <fstream>
#include <iomanip>
using namespace std;
ifstream is("dezastru.in");
ofstream os("dezastru.out");
int n, p, x[27];
long long int cnt;
float a[27];
double sum, rez, aux;
void Sum( int k );
void Back( int k );
int main()
{
is >> n >> p;
for ( int i = 1; i <= n; i++ )
is >> a[i];
Back(1);
rez = sum / cnt;
os << setprecision(6) << rez;
is.close();
os.close();
return 0;
}
void Back( int k )
{
if ( k > p )
{
Sum( k - 1 );
cnt++;
return;
}
for ( int i = x[k-1] + 1; i <= n; i++ )
{
x[k] = i;
Back(k+1);
}
}
void Sum( int k )
{
aux = 1;
for ( int i = 1; i <= k; i++ )
aux *= a[x[i]];
sum += aux;
}