Pagini recente » Cod sursa (job #2084609) | Cod sursa (job #3161248) | Cod sursa (job #3146960) | Cod sursa (job #1936716) | Cod sursa (job #1598575)
#include <cstdio>
using namespace std;
int k , x , y , n , v[100] , q , ap[100] ;
double cost[100] , suma , sol[50000] , raspuns ;
void afisare()
{
for ( int i = 1 ; i <= k ; i++ )
{
printf("%d ",v[i]);
}
printf("\n");
}
void bkt( int x )
{
if ( x == n + 1 )
{
suma = 1 ;
for ( int i = 1 ; i <= k ; i++ )
{
suma *= cost[v[i]];
}
++q ;
sol[q] = suma ;
//afisare();
return ;
}
for ( int i = 1 ; i <= n ; i++ )
{
if ( ap[i] != 1 )
{
v[x] = i ;
ap[i] = 1 ;
bkt ( x + 1 ) ;
ap[i] = 0 ;
}
}
}
int main()
{
freopen("dezastru.in","r",stdin);
freopen("dezastru.out","w",stdout);
raspuns = 0 ;
scanf("%d %d",&n,&k);
for ( int i = 1 ; i <= n ; i++ )
{
scanf("%lf ",&cost[i]) ;
}
bkt(1) ;
for ( int i = 1 ; i <= q ; i++ )
{
raspuns += ( sol[i] / q ) ;
}
printf("%lf",raspuns);
}