Pagini recente » Cod sursa (job #1469636) | Cod sursa (job #405808) | Cod sursa (job #2818448) | Cod sursa (job #2050862) | Cod sursa (job #2335396)
#include <bits/stdc++.h>
#define ll long long
using namespace std ;
const int N = 25 ;
ifstream in ("dezastru.in") ;
ofstream out ("dezastru.out") ;
double rez , p = 1 , sum , cnt , d [ N ] ;
ll st [ N ] ;
/*
int comb ( int n , int k )
{
cmb = n - k + 1 ;
for ( int i = 2 ; i <= k ; ++ i)
cmb *= n - k + i , cmb /= i ;
return cmb ;
}
*/
void ans ( float k )
{
rez = 1 ;
for ( ll i = 1 ; i <= k ; i ++ ) rez *= d [ st [ i ] ] ;
sum += rez ;
cnt ++ ;
}
void gen_comb ( ll n , ll k , ll level , ll r )
{
if ( level == k + 1 ) { ans ( k ) ; return ; }
for ( ll i = r ; i <= n - k + level ; ++ i )
{
st [ level ] = i ;
gen_comb( n , k , level + 1 , i + 1 ) ;
}
}
int main ()
{
ll n , k ;
in >> n >> k ;
for ( ll i = 1 ; i <= n ; ++ i ) in >> d [ i ] ;
gen_comb( n , k , 1 , 1 ) ;
out << setprecision( 6 ) << fixed << sum / cnt << "\n" ;
return 0 ;
}