Cod sursa(job #154237)

Utilizator mithyPopovici Adrian mithy Data 11 martie 2008 00:30:17
Problema Dezastru Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <stdio.h>
#define NMax 50
#include <math.h>

int n, m, comb[NMax], uz[NMax];
double a[NMax], sum;

void citire();
void bkt( int k );

int main()
{
	citire();
	bkt(1);
	printf( "%.6lf\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" );

		sum += (double)( prod / 6 );
		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] );
		
	}
}