diff --git a/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/MainLan b/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/MainLan index ab6538e4f63e54e48c3ad994081e40e4ac249c95..e6233d70d469f98c18976790cae89ce875ce732f 100755 Binary files a/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/MainLan and b/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/MainLan differ diff --git a/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/MainSeq b/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/MainSeq index 83e93383c8484d0538e85437637a30b8e1cc4bb0..822448462fc573f575635ad95fd8827b8612fed2 100755 Binary files a/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/MainSeq and b/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/MainSeq differ diff --git a/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/datos_columnas b/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/datos_columnas index ca3e2b162b6ccea26fc8b4bc0c636566f34298de..a668ca5d9ff9298d6abf93b2a1392cd0e40078b6 100644 --- a/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/datos_columnas +++ b/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/datos_columnas @@ -1,11 +1,51 @@ -10 -1 4 -2 1 -3 6 -1 1 1 1 -2 1 1 1 -1 3 -2 1 -1 2 1 -1 3 1 -1 4 +50 +1 1 1 1 1 1 5 4 1 1 2 1 1 1 1 2 +1 3 3 3 2 1 1 1 3 2 1 2 1 2 1 +2 1 1 5 3 1 2 3 1 1 +4 1 1 2 7 5 1 1 1 1 2 1 2 +1 2 4 2 3 1 2 2 6 1 1 2 1 +2 2 2 2 3 1 1 2 4 1 1 2 1 3 +2 1 4 1 2 1 1 1 2 3 11 +2 3 1 1 4 4 1 1 6 1 1 1 +1 1 7 1 2 1 5 1 1 1 4 2 1 1 +2 1 1 1 1 3 1 1 2 1 2 5 2 +9 2 2 1 1 2 3 1 1 1 1 +2 4 2 1 3 7 5 2 1 1 1 3 +3 1 1 1 1 1 3 1 2 2 4 1 2 2 +6 1 1 2 2 1 3 3 2 3 1 2 1 +1 2 1 1 2 1 2 1 2 6 1 2 3 +3 2 1 2 2 3 2 1 1 3 +2 2 1 1 5 2 1 1 2 7 3 2 +2 2 3 1 1 2 1 2 1 3 2 2 +3 1 1 1 3 2 2 4 1 2 2 1 1 1 1 +2 1 1 1 2 8 1 1 1 1 1 2 +1 1 2 3 5 1 2 1 1 2 1 1 +3 1 1 2 5 1 2 1 1 4 3 1 +1 1 1 3 2 1 1 1 1 4 1 2 1 +2 1 1 1 1 7 1 2 1 2 3 +3 6 1 1 3 4 2 1 1 1 2 2 +2 1 3 1 3 1 2 1 3 1 2 1 +3 1 3 3 1 3 4 1 1 +2 1 2 4 3 1 1 1 1 1 1 1 1 1 +4 1 5 1 1 2 3 2 1 2 6 4 +1 1 5 1 1 2 3 2 5 2 +1 9 1 9 3 4 1 4 +1 1 1 1 1 1 2 1 1 2 2 2 1 2 2 3 +2 3 1 7 1 1 1 5 1 4 1 +1 2 3 1 2 1 1 2 1 2 1 3 1 +1 1 1 1 1 3 1 6 1 2 1 1 2 1 1 1 1 +2 1 1 1 4 1 1 5 1 2 1 1 4 +1 1 4 1 1 1 1 3 1 2 1 +2 3 1 4 1 2 1 5 3 2 1 2 1 +1 1 1 4 1 1 2 1 1 1 2 1 5 4 +1 1 2 1 2 2 1 3 2 2 1 1 4 1 4 3 +2 1 1 1 2 2 2 4 2 1 3 1 1 +1 1 1 1 4 5 1 1 1 1 3 2 2 +1 1 2 2 2 1 3 2 1 2 1 2 1 2 +1 4 2 3 1 3 2 1 2 3 2 1 1 +2 1 2 7 1 1 1 1 3 1 1 5 3 +2 2 3 1 2 1 2 1 2 2 1 1 1 1 +2 2 1 1 1 2 1 1 1 1 2 1 1 2 +1 2 3 2 3 1 2 1 7 2 2 +1 1 1 1 3 1 4 1 1 1 1 1 1 1 2 2 +1 1 2 1 1 1 1 3 1 2 2 2 2 2 1 diff --git a/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/datos_filas b/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/datos_filas index b005d6fa8406a6886713579cc56f188b50c5cbda..865f8c631f7bf2b0f7c1c4c9016ddab5e9591601 100644 --- a/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/datos_filas +++ b/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/datos_filas @@ -1,11 +1,51 @@ -10 -2 3 -1 -3 1 -1 3 1 -2 3 -2 1 3 -1 2 1 1 -1 1 3 1 -3 1 1 -1 3 1 +50 +2 2 2 6 2 7 3 2 4 1 1 +1 1 1 1 3 5 1 6 1 1 1 1 3 2 +6 2 1 2 2 1 1 2 2 2 1 3 +5 1 1 1 2 2 1 1 1 1 1 1 1 +1 1 4 2 5 2 1 3 1 1 1 +3 3 1 1 3 2 1 5 4 2 1 2 +1 2 2 3 1 1 3 2 1 2 2 1 +3 1 1 1 1 1 2 9 2 1 1 1 +1 1 1 3 1 1 1 8 2 1 1 6 1 +2 6 2 1 1 1 1 1 2 3 3 1 6 +2 3 4 2 1 2 3 3 4 1 2 +1 1 1 1 1 1 2 1 1 2 2 1 1 1 1 7 +4 5 1 1 2 2 1 2 3 +2 2 1 1 1 1 3 2 2 1 1 +3 3 2 1 1 1 1 1 1 1 3 3 1 2 2 +1 1 2 3 3 1 1 4 1 2 3 +2 6 1 4 1 2 1 1 3 2 1 2 2 3 +2 5 3 1 1 2 2 2 1 1 1 1 1 2 2 +1 3 1 2 1 1 1 2 2 3 4 2 1 1 2 2 +1 1 1 3 1 1 1 1 1 1 1 1 2 5 1 +1 3 1 1 2 1 1 3 1 2 1 5 3 +2 1 1 1 2 3 1 2 2 1 1 1 1 2 1 1 1 +3 2 2 1 3 2 1 5 1 1 4 1 +1 2 3 5 1 2 1 2 1 1 2 3 2 1 +2 1 2 2 3 1 1 1 1 1 4 1 1 4 +1 3 2 1 2 2 2 3 2 2 1 4 1 1 +2 2 1 1 1 3 2 1 1 4 1 2 1 2 1 +1 1 1 1 1 1 2 1 3 1 1 3 1 1 1 +4 1 1 2 1 1 1 3 1 1 1 1 1 1 +6 1 4 4 3 1 1 1 1 1 2 +3 4 3 3 1 1 1 1 1 1 2 2 1 1 +1 2 1 3 2 1 1 1 1 1 1 2 1 1 1 +2 3 1 1 2 2 8 1 1 2 4 2 2 +2 1 1 5 2 3 1 7 2 3 1 +1 2 1 3 1 1 2 5 4 2 1 +2 3 1 3 1 1 1 2 1 4 2 2 1 +1 2 1 1 1 1 1 2 2 1 4 2 +4 6 3 3 2 1 1 1 1 2 1 3 1 +3 3 2 2 3 1 2 1 1 1 1 1 1 1 +1 1 1 2 3 2 1 6 2 1 2 2 +1 1 1 4 1 1 2 2 1 2 2 1 2 1 +1 3 1 2 1 2 3 1 1 5 2 1 +3 3 4 1 2 1 1 5 1 2 4 1 1 2 +3 4 1 1 3 1 7 3 1 +2 1 2 1 2 1 1 3 5 1 1 1 1 2 4 +2 1 4 3 1 1 3 2 3 1 1 3 +1 1 1 1 4 2 1 1 2 1 2 1 3 +1 4 5 1 1 1 2 1 2 4 3 2 +2 2 1 4 2 2 2 1 2 2 1 4 +1 1 1 3 1 3 1 2 1 3 3 1 2 diff --git a/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/newGA.req.cc b/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/newGA.req.cc index ccb9c22dd843e603e9e69f96682db151807ed0a5..3ce1a40dd7181ba3efc84141176904075fea31e7 100644 --- a/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/newGA.req.cc +++ b/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/newGA.req.cc @@ -336,9 +336,9 @@ skeleton newGA { for(int col = 0; col < sol.pbm().cantColumnas(); col++) { - cout << sol._var[col][fil] << " "; + ss << sol._var[col][fil] << " "; } - cout << endl; + ss << endl; } outfile << ss.str(); @@ -585,7 +585,9 @@ skeleton newGA char *Solution::to_String() const { cout << "EN TO STRING" << endl; + Rarray<int> aux = Rarray<int>(0); //Rarray<int>((_pbm.cantColumnas() + 1) * _pbm.cantFilas()); + /* for (int fil = 0; fil < _pbm.cantFilas(); fil++) { for(int col = 0; col < _pbm.cantColumnas(); col++) @@ -600,7 +602,16 @@ skeleton newGA //cout << endl; } - Rarray<int> aux = Rarray<int>((_pbm.cantColumnas() + 1) * _pbm.cantFilas()); + for(int i = 0; i < _pbm.cantFilas(); i++) + { + for(int j = 0; j < _pbm.cantColumnas(); j++) + { + cout << _var[j][i] << " "; + } + cout << endl; + } + + int c = 0; for (int k = 0; k < _pbm.cantFilas(); k++) { @@ -621,23 +632,60 @@ skeleton newGA c++; } } -// for(int i = 0; i < _pbm.cantColumnas(); i++) -// { -// for(int j = 0; j < _pbm.cantFilas(); j++) -// { cout << _var[i][j] << " "; -// } -// cout << endl; -// -// } - //char * k = (char *)_var.get_first(); - //cout << "ACA" << (int *)k << endl; + int h = _pbm.cantFilas(); + for(int i = 0; i < _pbm.cantColumnas(); i++) + { + for(int j = 0; j < _pbm.cantFilas(); j++) + { + cout << aux[h] << " "; + h++; + } + cout << endl; + } + + for (int fil = 0; fil < _pbm.cantFilas(); fil++) + { + for(int col = 0; col < _pbm.cantColumnas(); col++) + { + //cout << sol.var(col, fil) << " "; + if (_var[col][fil] != 0 && _var[col][fil] != 1) + { + cout << "tostring end" << endl; + exit(EXIT_FAILURE); + } + } + //cout << endl; + }*/ + + + //FILE--------------------------------------------------------------------------------------------------- + + ofstream outfile("tempsolution"); + + stringstream ss; + + for(int col = 0; col < _pbm.cantColumnas(); col++) + { + for (int fil = 0; fil < _pbm.cantFilas(); fil++) + { + ss << _var[col][fil] << " "; + } + ss << endl; + } + + outfile << ss.str(); + outfile.close(); + + //FILE--------------------------------------------------------------------------------------------------- + return (char *)aux.get_first(); } void Solution::to_Solution(char *_string_) { cout << "toSolution" << endl; + /* int *ptr=(int *)_string_; Rarray<int> aux = Rarray<int>((_pbm.cantColumnas()+1) * _pbm.cantFilas()); for (int i=0;i< (_pbm.cantColumnas() * _pbm.cantFilas());i++) @@ -660,8 +708,63 @@ skeleton newGA c++; } + }*/ + + //FILE---------------------------------------------------------------------------------------------- + + //CARGAR DATOS FILAS + string line2; + ifstream inFile2; + inFile2.open("tempsolution"); + if (!inFile2) + { + cerr << "Unable to open file datafile.txt"; + exit(1); // call system to stop + } + + for(int c = 0; c < _pbm.cantColumnas(); c++) + { + getline(inFile2, line2); + + //Rarray<int> divided(_pbm.cantFilas()); + + int f = 0; + + int n = line2.length(); + int len=1; + int t=0; + int z=0; + for(int i=0; i<=line2.length(); i++) + { + if(line2[i] == ' '|| i==line2.length()) + { + string rr = line2.substr(z,len); + if (rr != "") + { + rr = trim(rr); + + //divided.push_back(stoi(rr)); + _var[c][f] = stoi(rr); + f++; + + } + + //cout << rr << " "; + t=t+1; + z=i+1; + len=1; + //s.erase(i,1); + } + else len=len+1; + } + } + exit; + inFile2.close(); + //FILE---------------------------------------------------------------------------------------------- + + /* for (int fil = 0; fil < _pbm.cantFilas(); fil++) { for(int col = 0; col < _pbm.cantColumnas(); col++) @@ -674,19 +777,8 @@ skeleton newGA } } //cout << endl; - } - -// int *ptr=(int *)_string_; -// for (int i=0;i<_pbm.cantColumnas();i++) -// { for(int j = 0; j < _pbm.cantFilas(); j++) -// { //cout << _var[0][0]; -// //_var[i][j]=*ptr; -// //ptr++; -// -// } -// } - _init = 1; - } + }*/ + } unsigned int Solution::size() const { @@ -1105,19 +1197,12 @@ skeleton newGA bool StopCondition_1::EvaluateCondition(const Problem& pbm,const Solver& solver,const SetUpParams& setup) { bool fin=(currentBestFitness == 0 || (int) (solver.current_time_spent() - solver.time_best_found_trial()) > 20000000); - //Condicion de parada. Si el fitness es 0 terminamos la ejecucion. - //bool fin=(int)solver.best_cost_trial() == 0; - //cout << pbm.cantEmpleados(); - /*if (fin){ - //Escribo el resultado en el archivo de salida - FILE * pFile; - pFile = fopen ("asignacion_colores.csv","w"); - for (int i=0;i<pbm.dimension();i++){ - fprintf (pFile, "%d,%d\n",i+1,solver.best_solution_trial().var(i)); - } - fclose (pFile); - }*/ - //return (fin); +// if (currentBestFitness == 0) +// { +// cout << "corta bien" << endl; +// exit(EXIT_FAILURE); +// } + return fin; } diff --git a/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/newGA.req.o b/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/newGA.req.o index efc6ca1890255eb78b74611e83076191427cb970..4e8a4d3a5b78307b5a0a05bea9b2048fbeb36de6 100644 Binary files a/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/newGA.req.o and b/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/newGA.req.o differ diff --git a/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/res/sol.txt b/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/res/sol.txt index 9b721636576a19cd39eca3dacc220076fe4468e8..c0d68c66f4564291b0ce6b8cadce303381292d41 100644 --- a/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/res/sol.txt +++ b/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/res/sol.txt @@ -3,14 +3,14 @@ STATISTICS OF TRIALS ------------------------------------------------------------------ -1 9200 59800 2600 25 27064 589222 -2 2600 63700 4300 42 21797 493408 -3 5200 58000 11400 113 52831 481602 -4 5900 59300 13900 138 83146 531894 -5 7300 52800 49400 493 287669 550838 -6 2600 54500 21500 214 115742 534893 -7 5900 58100 11000 109 60535 527605 -8 7800 58100 1900 18 10128 489493 -9 2600 58500 4400 43 27452 515218 -10 12400 61600 32900 328 184002 544424 +1 125800 304400 83500 834 6.11349e+06 7.2359e+06 +2 124200 297700 53900 538 3.83605e+06 6.86023e+06 +3 115200 300200 78900 788 5.53009e+06 6.95522e+06 +4 231600 292900 100 0 0 0 +5 222400 301800 100 0 0 0 +6 216500 295000 100 0 0 0 +7 229400 296000 100 0 0 0 +8 231400 295600 100 0 0 0 +9 224000 299500 100 0 0 0 +10 236300 307100 100 0 0 0 ------------------------------------------------------------------ diff --git a/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/solution b/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/solution index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..2e813ffa86b9616dd145a2cdbe3b996d04abd70b 100644 --- a/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/solution +++ b/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/solution @@ -0,0 +1,25 @@ +1 1 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 +1 1 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 1 0 0 0 0 1 1 0 +0 1 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 1 0 +1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 +1 1 0 0 1 0 1 0 0 0 1 1 1 0 0 0 1 0 1 1 1 0 1 0 0 +1 0 0 0 1 0 0 0 1 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 1 +1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 1 1 1 1 0 1 0 0 +1 1 0 0 1 1 0 0 1 0 1 0 1 0 0 0 1 0 1 1 1 1 1 1 0 +0 0 1 0 1 1 0 1 0 0 1 0 0 0 0 1 0 0 1 1 1 0 1 1 1 +0 1 1 0 1 0 1 0 1 1 1 1 0 0 0 0 0 0 0 1 1 0 0 1 0 +0 0 1 1 0 1 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 1 0 1 0 +0 1 0 0 1 0 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 +0 1 1 1 1 1 0 1 1 1 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 +1 1 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 0 0 0 0 1 +0 1 1 1 0 0 1 1 1 1 0 0 0 1 1 0 0 0 0 0 0 1 0 1 1 +0 0 1 0 1 1 1 1 0 1 0 0 1 0 0 1 1 0 1 0 0 1 1 1 0 +0 1 1 1 1 0 0 0 1 0 1 0 0 0 1 1 1 1 0 1 1 0 0 1 1 +0 1 1 0 1 1 0 1 1 0 1 0 0 1 1 0 0 1 1 1 0 1 1 1 0 +0 0 0 1 1 1 1 0 1 0 1 0 0 1 1 1 1 1 0 1 1 1 0 0 1 +0 1 1 1 0 0 0 1 0 0 1 0 1 1 0 1 0 0 1 1 0 0 1 1 1 +0 1 1 1 1 1 1 0 1 1 0 1 0 0 1 0 1 1 1 0 1 1 0 0 0 +1 1 0 0 1 1 0 1 1 0 1 0 0 1 1 1 0 0 0 1 0 1 1 1 1 +0 1 1 1 0 1 1 1 1 1 0 1 0 0 0 1 1 1 1 1 1 1 1 1 0 +0 1 0 1 1 0 0 1 1 1 1 0 1 1 1 0 1 0 1 0 0 1 1 0 1 +1 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 diff --git a/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/tempsolution b/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/tempsolution new file mode 100644 index 0000000000000000000000000000000000000000..02909c7c9542995e58bd06156a6a20f073c8f506 --- /dev/null +++ b/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/tempsolution @@ -0,0 +1,50 @@ +0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 1 0 1 1 1 1 1 0 1 1 1 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0 1 0 1 1 +0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1 0 1 0 1 1 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 +0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 1 1 1 1 0 1 1 1 0 1 0 0 0 0 1 1 0 1 1 1 0 1 0 1 +0 0 0 1 1 1 1 0 0 0 0 1 0 0 1 0 1 1 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 0 0 1 0 1 0 1 0 1 0 1 1 0 1 0 1 1 +1 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 0 0 1 1 1 0 1 0 1 1 0 1 1 0 1 1 1 1 1 1 0 1 0 1 0 1 1 0 1 +0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 1 1 0 0 0 1 1 1 0 0 1 0 0 1 0 1 1 0 1 1 1 1 0 1 0 1 0 1 1 0 1 0 1 1 1 +0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 1 1 1 1 0 1 0 1 1 0 1 0 1 0 1 0 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 +0 0 0 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 0 1 0 1 0 1 +1 0 1 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 0 1 1 0 1 0 1 +0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 1 1 1 0 1 0 1 0 1 1 0 1 0 1 1 0 1 1 1 1 1 0 1 1 +0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 1 0 0 1 0 1 1 0 1 1 1 0 1 0 1 0 1 0 1 +0 0 0 1 1 0 0 0 0 1 1 1 1 0 1 1 0 1 0 0 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 0 1 1 0 1 0 1 0 1 0 1 1 1 +0 0 0 0 0 0 0 1 1 1 0 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 1 1 1 0 1 0 1 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 1 +0 0 0 0 0 0 1 1 1 1 1 1 0 0 1 0 0 1 0 0 1 1 0 1 1 0 1 0 0 1 1 1 0 1 1 1 0 1 1 0 1 1 1 0 1 0 1 1 0 1 +0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 1 0 0 0 1 0 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 1 1 1 1 1 0 1 0 1 1 0 1 1 1 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 1 1 0 0 0 1 0 0 1 1 0 0 1 1 0 0 1 1 1 0 1 1 0 1 0 1 0 1 1 1 +0 0 0 0 0 0 1 1 0 0 0 1 1 0 0 1 0 1 0 1 1 1 1 1 0 1 1 0 0 1 0 1 0 1 1 0 1 1 1 1 1 1 1 0 1 1 1 0 1 1 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 0 0 1 1 1 0 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 1 0 1 1 0 1 1 +0 1 1 1 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 1 1 0 1 1 0 1 1 0 1 1 1 1 0 1 0 1 1 0 1 0 0 1 0 1 0 1 0 1 +0 0 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 1 0 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 1 +0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 0 1 1 1 0 1 1 1 1 1 0 1 0 0 1 1 0 1 0 1 0 1 1 0 1 0 1 +0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 1 0 1 1 1 1 1 0 1 0 1 1 0 0 1 0 1 0 1 1 1 1 0 1 1 1 0 1 +0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 0 1 1 0 1 0 1 0 1 0 1 0 0 1 1 0 1 0 1 0 0 1 0 +0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 0 1 0 1 1 0 1 0 1 1 0 1 1 1 +0 0 1 1 1 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 0 1 0 1 1 1 0 0 1 1 1 1 0 1 1 0 1 0 1 0 1 0 1 1 0 1 1 +0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 0 0 0 1 0 1 1 0 1 0 0 1 1 1 0 1 0 1 1 0 1 +0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 0 1 1 1 0 1 0 0 1 1 1 0 1 1 1 1 0 1 0 1 0 +0 0 0 0 0 1 1 0 0 0 1 0 0 0 1 1 0 1 1 1 1 0 0 0 1 1 1 0 1 0 0 0 1 0 0 0 1 0 0 1 0 1 0 1 0 1 0 1 0 1 +0 0 0 1 1 1 1 0 0 1 0 0 0 1 1 1 1 1 0 0 1 0 1 0 1 1 0 1 1 1 0 1 1 0 1 0 1 1 0 1 1 1 1 1 1 0 1 1 1 1 +0 0 0 1 0 0 0 1 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 1 0 0 1 1 1 0 1 1 0 0 1 1 1 1 1 0 1 1 +0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 0 0 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 0 0 1 1 1 1 0 0 1 0 1 1 1 1 +0 1 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 0 0 1 0 1 1 0 1 0 1 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 0 1 1 0 1 1 1 +0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1 0 0 0 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 0 1 +0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 1 1 1 0 0 0 1 0 1 0 0 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 1 0 1 +0 0 0 0 0 0 1 0 0 0 1 0 1 0 1 0 1 0 1 1 1 0 1 0 1 1 1 1 1 1 0 1 0 1 1 0 1 0 1 0 0 0 0 1 0 1 0 1 0 1 +0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 1 1 1 1 0 1 0 1 0 1 1 1 1 1 0 1 0 1 1 0 1 0 1 0 1 1 1 1 +0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 1 0 1 0 0 1 0 0 1 0 0 1 1 1 0 1 0 1 1 0 1 0 +0 0 0 0 0 0 1 1 0 0 1 1 1 0 1 0 1 1 1 1 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1 1 0 1 1 1 0 1 1 0 1 0 1 1 0 1 +0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 0 0 1 0 1 0 1 0 1 1 0 1 0 1 1 1 1 1 0 1 1 1 1 +0 0 0 1 0 0 1 0 1 1 0 1 0 1 1 0 1 1 0 1 0 1 1 1 0 1 1 0 1 1 0 1 0 1 0 1 1 1 1 0 1 0 1 1 1 1 0 1 1 1 +0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 1 1 0 1 1 0 1 1 0 1 1 1 1 0 1 1 0 1 0 1 1 1 0 1 0 1 +0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 0 0 0 1 0 0 1 0 1 0 0 1 0 1 1 1 0 1 1 0 1 1 +0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 1 0 0 1 1 0 1 1 0 1 0 1 1 1 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 0 1 1 +0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 0 1 0 1 1 1 0 1 1 0 0 0 1 1 0 1 1 1 0 1 1 0 1 0 1 +0 0 0 1 1 0 0 0 1 0 0 0 1 1 0 1 1 1 1 1 1 1 0 0 0 1 0 1 0 1 0 1 0 1 1 1 0 1 0 1 0 1 1 1 0 1 0 1 1 1 +0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 0 0 0 0 1 1 1 0 0 1 0 0 1 1 0 1 0 1 1 0 1 0 1 1 0 1 0 0 1 0 1 0 1 0 1 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 0 0 0 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 1 +0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 1 0 0 1 1 0 1 1 1 0 1 0 1 1 0 1 0 1 1 1 1 1 1 1 0 1 1 0 1 1 +0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 0 1 0 0 1 0 1 0 0 1 0 1 0 1 0 1 0 1 1 0 1 1 +0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 1 0 1 0 1 0 1 0 1 0 1 1 1 0 1 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 0 1