Cod sursa(job #954694)

Utilizator superman_01Avramescu Cristian superman_01 Data 29 mai 2013 21:09:15
Problema Dezastru Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include<fstream>
#include<iomanip>

#define NMAX 30

using namespace std;

ifstream f("dezastru.in");
ofstream g("dezastru.out");

int N,K;

double v[NMAX],prod;
double sum,Answer;

int s[NMAX],nr;

void Backtracking( int k )
{
	if( k== K +1 )
	{
		sum+=prod;
		++nr;
		return ;
	}
	else
		for(int i(s[k-1] +1 ) ; i <= N ; ++ i)
		{
			s[k]=i;
			prod*=v[i];
			Backtracking(k+1);
			prod/=v[i];
			
		}
	
	
}
void Write ( void )
{
   Answer=sum/nr;
   g<<setprecision(6)<<Answer<<"\n";
   exit(0);
}
int main ( void )
{
	f>>N>>K;
	prod=1;
	
   for( int i(1) ; i <= N ; ++i )
	   f>>v[i];
   Backtracking(1);
   Write();
   return 0;
    
}