Cod sursa(job #421949)

Utilizator dornescuvladVlad Eugen Dornescu dornescuvlad Data 21 martie 2010 21:26:57
Problema Dezastru Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include<iostream>
#include<fstream>
#include<iomanip.h>

using namespace std;

ifstream fin("dezastru.in");
ofstream fout("dezastru.out");

int v[45],k,n,ct;
double p[50],prod,s;

void Prelucreaza()
{
	prod = 1;
	ct ++;
	for(int i=1;i<=k;i++)
		prod*=p[v[i]];
	s+=prod;
}

void Genereaza(int pas)
{	
	if(ct<3)
	{

	if(pas == k+1)
		Prelucreaza();
	else
		for(int i=v[pas-1]+1; i<=n-k+pas; i++)
		{
			v[pas]=i;
			Genereaza(pas+1);
		}
	}
}


int main()

{
	fin>>n>>k;
	for(int i=1;i<=n;i++)
		fin>>p[i];
	Genereaza(1);
	fout<<fixed;
	fout<<setprecision(6);
	fout<<s/ct;
	return 0;
}