Cod sursa(job #393056)

Utilizator sorecau_catalinSorecau Catalin sorecau_catalin Data 8 februarie 2010 20:16:07
Problema Dezastru Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <fstream>
using namespace std;

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

void Back(int p);
void Solve(int p);
int n, k, x[30], nrsol;
long double a[30], sumfinal;
int main()
{
	
	fin >> n >> k;
	for ( int i = 1; i <= n; i++)
		fin >> a[i];
	Back(1);
	fout<<sumfinal/nrsol;
	fin.close();
	fout.close();
}

void Back(int p) 
{ 

	if(p == k+1) 
		Solve(p-1); 
	if( p <= k) 
	for(int i=1;i<=n;i++) 
		if(x[p-1]<i) 
		{
			x[p]=i;
			Back(p+1);
		}			

}

void Solve( int p)
{
	nrsol++;
	long double prod = 1;
	for ( int i = 1; i <= k; ++i)
		prod*=a[x[i]];
	sumfinal+=prod;
	
}