Cod sursa(job #155315)

Utilizator mithyPopovici Adrian mithy Data 11 martie 2008 21:04:37
Problema Dezastru Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <stdio.h>
#define NMax 30

int n, k;
double p[NMax][NMax];

void citire();
void rez();

int main()
{
	citire();
	rez();
	return 0;
}

void rez()
{
	int l, x, y;
	double prod = 0;

	for (l=2; l<=k; l++)
	{
		// siruri de lungime l din l - 1
		for (x=1; x<=n; x++)
		{
			// pun pe ultima pozitie nr X
			for (y=1; y<x; y++)
				p[x][l] += p[y][l-1];

			if ( x != 1)
				p[x][l] = p[x][l] * p[x][1] / (x - 1);
		}
	}
	
	for (x=1; x<=n; x++)
		prod += p[x][k] * (x-1);

	printf( "%.6llf\n", prod / n );
}
void citire()
{	
	int i;

	freopen( "dezastru.in", "rt", stdin );
	freopen( "dezastru.out", "wt", stdout );

	scanf( "%d %d", &n, &k );

	for (i=1; i<=n; i++)
		scanf( "%lf", &p[i][1] );
}