#include "stdio.h"
#include "stdlib.h"
#include "float.h"

#ifndef _FACILITY_LOCATION_H_
#define _FACILITY_LOCATION_H_


class FacilityLocation {
public:
	
	FacilityLocation( ) ;
	~FacilityLocation( ) ;
	void initialize(int i_nf , int i_nc , double i_f , double** i_c) ;
	int** getConnectionMatrix( ) ;
	int* getOpenVector( ) ;
	int getNofFacilities( ) ;
	void run( ) ;
private:
	int minimum( double* T , int* y , int l) ;
	int is_initialized;
	int has_run ;
	int n_opened_facilities ;
	double** c ;
	double f ;
	int nf;
	int nc;
	int** x ;
	int* y ;
};


//int /*Returns the number of opened facilities*/  
//facility_location( int nf , /*Total number of facilities*/
//		   int nc , /*Total number of cities*/
//		   double f , /*Cost of opening a facility*/
//		   double** c , /*Connection costs: must be nfxnc*/
//		   int** x , /*Connection matrix: must be allocated and nfxnc*/
//		   int* y) ; /*Opening vector: must be allocated and nfx1*/
//
//
//int /*Returns the position of minimum element in a vector T of length l*/
//minimum( double* T , 
//	 int* y ,
//	 int l ) ;

#endif


