Cod sursa(job #421950)

Utilizator dornescuvladVlad Eugen Dornescu dornescuvlad Data 21 martie 2010 21:27:39
Problema Dezastru Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 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<n)
	{

		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;
}