Cod sursa(job #717446)

Utilizator romircea2010FMI Trifan Mircea Mihai romircea2010 Data 19 martie 2012 22:12:56
Problema Dezastru Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include <fstream>
#include <cstdio>

using namespace std;

int n, m, nrc;
double a[28], sol;

void Read()
{
	ifstream f("dezastru.in");
	f>>n>>m;
	int i;
	for (i=1; i<=n; i++)
		f>>a[i];
	f.close();	
}

void back(int k, int s, double sum)
{
	if (k-1 == m)
	{
		sol += sum;
		nrc++;
	}
	else
	{
		int i;
		for (i=s + 1; i<=n-m+k; i++)
		{
			back(k+1, i, sum*a[i]);
		}
	}
}

void Solve()
{
	back(1, 0, 1);
}

void Write()
{
	freopen("dezastru.out", "w", stdout);
	printf("%.6lf\n", sol/nrc);
}

int main()
{
	Read();
	Solve();
	Write();
	return 0;
}