Pagini recente » Cod sursa (job #1405651) | Cod sursa (job #989799) | Cod sursa (job #1542905) | Cod sursa (job #2723572) | Cod sursa (job #154241)
Cod sursa(job #154241)
#include <stdio.h>
#define NMax 50
int n, m, perm, comb[NMax], uz[NMax];
double a[NMax], sume[NMax], sum;
void citire();
void bkt( int k );
int main()
{
int i;
citire();
bkt(0);
for (i=0; i<perm; i++)
sum += (double)(sume[i]/perm);
printf( "%lf\n", sum );
return 0;
}
void bkt( int k )
{
int i;
double prod = 1;
if ( k >= m )
{
for (i=0; i<m; i++)
prod *= (double)a[comb[i]-1];
// printf( "%d ", comb[i] );
// printf( "\n" );
sume[perm++] = prod;
return;
}
for (i=1; i<=n; i++)
if ( !uz[i] )
{
uz[i] = 1; comb[k] = i;
bkt(k+1);
uz[i] = 0;
}
}
void citire()
{
int i;
freopen( "dezastru.in", "rt", stdin );
freopen( "dezastru.out", "wt", stdout );
scanf( "%d %d", &n, &m );
for (i=0; i<n; i++)
{
scanf( "%lf", &a[i] );
}
}