Cod sursa(job #438081)

Utilizator miculprogramatorA Cosmina - vechi miculprogramator Data 10 aprilie 2010 14:37:35
Problema Dezastru Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.56 kb
#include <fstream.h>
#include <iostream.h>
#include <iomanip.h>
using namespace std;
#define doubl double

int N, K;

doubl a[40];

doubl S = 0;

int nr = 0;

void back(int k, doubl jeg, int last)
{
	if (k == K + 1) {
		S += jeg;
		nr++;
	} else {
		for (int i = last + 1; i <= N - K + k; i++)
			back(k + 1, jeg * a[i], i);
	}
}

int main()
{
	int i;
	ifstream f ("dezastru.in");
	ofstream g ("dezastru.out");
	f >> N >> K;

	for (i=1; i<=N; ++i) 
		f >> a[i];
	back (1, 1, 0);
	
	g << setprecision (7);
	g << S / nr;
	return 0;
}