Pagini recente » Cod sursa (job #1783644) | Cod sursa (job #659229) | Cod sursa (job #204351) | Cod sursa (job #1212382) | Cod sursa (job #154240)
Cod sursa(job #154240)
#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(1);
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=1; i<=m; i++)
prod *= (double)a[comb[i]];
// 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=1; i<=n; i++)
{
scanf( "%lf", &a[i] );
}
}