Pagini recente » Cod sursa (job #2729820) | Cod sursa (job #724478) | Cod sursa (job #2144254) | Cod sursa (job #679087) | Cod sursa (job #2828813)
#include <fstream>
#include <iostream>
#include <iomanip>
using namespace std;
int v [ 30 ], f [ 30 ];
float a [ 30 ];
int n, k, c;
float s;
void dezastru ( int i ){
if ( i == k ){
float p = 1;
for ( i = 1; i <= k; i++ )
p = p * a [ v [ i ] ];
s = s + p;
c++;
}
else {
for ( int j = v[ i ] + 1; j <= n; j++ ){
if ( f [ j ] == 0 ){
v[ i + 1 ] = j;
f [ j ] = 1;
dezastru ( i + 1 );
f [ j ] = 0;
v[ i + 1 ] = 0;
}
}
}
}
int main( ) {
ifstream fin ( "dezastru.in" );
ofstream fout ( "dezastru.out" );
int i;
fin >> n >> k;
for ( i = 1; i <= n; i++ )
fin >> a [ i ];
for ( i = 1; i <= n; i++ )
v[ i ] = i;
dezastru ( 0 );
fout << fixed << setprecision ( 6 ) << s / c;
return 0;
}