diff --git a/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/generador Nonogram Gonzalo.py b/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/generador Nonogram Gonzalo.py
index 7e62843b9813a9754d4f71c658891a7a0c62a2ba..9624cacf9024c4475799909f9bd4c24e667a61d9 100644
--- a/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/generador Nonogram Gonzalo.py	
+++ b/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/generador Nonogram Gonzalo.py	
@@ -77,12 +77,14 @@ try:
 
 	#archivo de salida de columnas
 	archivo = open ("datos_columnas", "w")
+	archivo.write("%d\n"%width)
 	for i in range(0, width):
 		for j in range(0, len(datosColumnas[i])):
 			archivo.write("%d "%datosColumnas[i][j])
 		archivo.write("\n")
 
 	archivo = open ("datos_filas", "w")
+	archivo.write("%d\n"%height)
 	for i in range(0, height):
 		for j in range(0, len(datosFilas[i])):
 			archivo.write("%d "%datosFilas[i][j])
diff --git a/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/newGA.hh b/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/newGA.hh
index 4d2423e81a83d39af2f15086836bac4c5673eb07..c3aa06d3413654e676ecff0ac114232fdf3f5c56 100644
--- a/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/newGA.hh
+++ b/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/newGA.hh
@@ -78,10 +78,10 @@ skeleton newGA
 	private:
         int _cantFilas;
         int _cantColumnas;
-        int** _datosColumnas;
-        int** _datosFilas;
-        int* _cantGruposColumna;
-        int* _cantGruposFila;
+        vector<vector<int>> _datosColumnas;
+        vector<vector<int>> _datosFilas;
+        vector<int> _cantGruposColumna;
+        vector<int> _cantGruposFila;
   };
 
 //Solution ----------------------------------------------------------------------------
diff --git a/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/newGA.req.cc b/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/newGA.req.cc
index 940a60f1fce969066c5f614ce73ba03c049558ae..97a1688cf48ad40d4e35a45e9490e6c989f1dc70 100644
--- a/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/newGA.req.cc
+++ b/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/newGA.req.cc
@@ -29,7 +29,21 @@ skeleton newGA
 		return os;
 	}
 
+	void split(const std::string &s, char delim, Out result) 
+	{
+	    std::stringstream ss(s);
+	    std::string item;
+	    while (std::getline(ss, item, delim)) {
+	        *(result++) = item;
+	    }
+	}
 
+	std::vector<std::string> split(const std::string &s, char delim) 
+	{
+	    std::vector<std::string> elems;
+	    split(s, delim, std::back_inserter(elems));
+	    return elems;
+	}
 
 	istream& operator>> (istream& is, Problem& pbm)
 	{
@@ -40,6 +54,47 @@ skeleton newGA
 		//is.getline(buffer,MAX_BUFFER,'\n');
 		//sscanf(buffer,"%d",&pbm._dimension);
 
+		//CARGAR DATOS COLUMNAS
+		ifstream inFile;
+		inFile.open("datos_columnas");
+		if (!inFile)
+        {
+            cerr << "Unable to open file datafile.txt";
+            exit(1);   // call system to stop
+        }
+        string x;
+        getline(inFile, x);
+        pbm._cantColumnas = stoi(x);
+        for(int cCol = 0; cCol < pbm._cantColumnas; cCol++)
+        {
+        	getline(inFile, x);
+        	std::vector<std::string> divided = split(x, " ");
+    		pbm._datosColumnas.push_back(divided);
+    		pbm._cantGruposColumna.push_back(divided.size());
+        }
+        inFile.close();
+
+        //CARGAR DATOS FILAS
+		ifstream inFile;
+		inFile.open("datos_filas");
+		if (!inFile)
+        {
+            cerr << "Unable to open file datafile.txt";
+            exit(1);   // call system to stop
+        }
+        string x;
+        getline(inFile, x);
+        pbm._cantFilas = stoi(x);
+        for(int cFi = 0; cFi < pbm._cantFilas; cFi++)
+        {
+        	getline(inFile, x);
+        	std::vector<std::string> divided = split(x, " ");
+    		pbm._datosFilas.push_back(divided);
+    		pbm._cantGruposFila.push_back(divided.size());
+        }
+        inFile.close();
+        /*
+        /*
         //CARGAR DATO CANT Tareas
         ifstream inFile;
         inFile.open("datos_cantidad_tareas");
@@ -130,7 +185,7 @@ skeleton newGA
             cout << pbm._tareasIndex[i] << " ";
         }
         exit(0);
-        */
+        
 
         //INICIALIZAR EMPLEADOS
         pbm._empleados=new Empleado [pbm._cantEmpleados];
@@ -239,6 +294,7 @@ skeleton newGA
 	        free(tmp);
 	    }
 	    */
+
 		cout<<pbm;
 		return is;
 	}