diff --git a/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/MainLan b/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/MainLan index 28f53f4413989d37333305b7f33ec842be081bb0..277666562d6fd0e3a32170fac7bf2aaca9d2bb61 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 9bbc05fb9a2859baa11d5fff3f5ab347468a4d38..499e57d9976aa180dd79ceb3134db35870ff70e2 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/MainSeq.cc b/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/MainSeq.cc index c624d0c6f436b65ce9bd7fd3ff8f6bb1d1bd9f21..f1bef0c246a7e93a2fb9d989ce3053ac6b0a669c 100644 --- a/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/MainSeq.cc +++ b/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/MainSeq.cc @@ -35,9 +35,11 @@ int main (int argc, char** argv) if (remove("tempsolution") !=0) cout<<"Remove operation failed"<<endl; - ofstream fexit(argv[3]); - if(!fexit) show_message(13); - fexit << solver.userstatistics(); + exit(EXIT_SUCCESS); + + //ofstream fexit(argv[3]); + //if(!fexit) show_message(13); + //fexit << solver.userstatistics(); } return(0); diff --git a/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/MainSeq.o b/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/MainSeq.o index 069fb895fcb0d294ad31f5adfa02eb03cd05aff2..1b999969db6368d880d2d2d41f82231ac7553e03 100644 Binary files a/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/MainSeq.o and b/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/MainSeq.o differ diff --git a/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/datos_columnas b/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/datos_columnas index 09ead747c28e1b8e1d3083f5261f0912b3e89f3c..45a9ba1e9b157a0faf014c5bb1c62cbef487cd34 100644 --- a/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/datos_columnas +++ b/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/datos_columnas @@ -1,31 +1,61 @@ -30 -2 2 1 1 3 1 1 1 1 -3 1 1 1 2 1 3 1 2 1 -1 1 2 1 3 1 1 2 1 -3 2 1 1 2 2 1 1 1 1 1 -2 1 1 2 2 1 1 1 1 -2 1 1 1 1 3 1 1 1 1 -1 1 3 2 1 2 -1 4 3 3 1 1 3 -3 2 2 1 4 1 1 2 1 -2 3 2 3 1 1 -1 1 1 1 1 3 1 2 -3 1 7 3 1 -1 1 3 3 1 2 2 1 -3 6 1 1 3 2 1 2 -4 1 2 1 1 1 2 -2 1 3 1 1 3 2 -1 1 1 1 2 1 2 1 1 -1 1 4 1 1 2 2 3 1 -6 1 8 1 4 -1 1 1 2 3 3 1 1 1 2 -1 2 6 1 2 -2 2 1 1 1 3 1 2 4 -2 8 2 1 4 1 1 -1 2 1 1 1 2 1 2 1 1 -1 2 3 1 1 2 2 1 1 -1 3 1 5 1 1 1 5 -1 1 1 7 1 1 -1 1 1 2 1 1 1 1 1 -1 1 5 1 1 1 1 2 -1 2 2 1 5 2 +60 +4 2 2 1 4 3 1 2 1 1 1 1 1 1 1 1 6 +1 2 1 3 1 5 2 2 4 1 4 1 1 +2 1 2 1 6 4 3 3 2 1 5 1 1 +2 4 3 3 4 7 2 1 1 1 2 +1 1 1 4 3 1 1 1 1 2 1 3 3 2 3 +1 1 2 2 2 1 1 1 2 4 2 1 2 3 +1 1 1 1 2 1 1 1 1 1 1 1 4 2 3 1 +3 1 2 1 1 3 1 6 2 1 1 2 1 1 1 +4 1 3 2 3 2 1 4 1 3 2 3 1 +1 1 1 1 1 1 3 5 2 2 1 1 1 1 2 1 1 +1 1 1 2 1 5 2 3 1 1 4 2 1 2 1 2 3 +11 1 5 1 1 3 5 2 2 2 1 1 1 1 +1 1 1 3 1 2 2 1 1 3 1 3 3 2 1 1 3 1 +5 6 2 1 2 2 2 2 4 1 1 1 +3 5 2 1 2 1 2 4 4 1 2 1 1 1 1 4 +1 3 1 3 1 2 1 2 3 1 3 5 4 1 +1 1 2 2 3 1 1 1 1 2 2 2 1 1 1 1 1 2 2 2 +1 1 1 1 4 1 3 1 2 2 1 1 1 1 1 1 2 +2 1 1 4 2 2 2 2 3 3 1 3 1 3 4 +2 1 4 1 3 2 5 1 2 1 1 4 1 1 2 +1 3 3 2 1 2 1 2 3 1 4 1 1 1 1 1 1 +1 1 1 2 3 3 1 3 1 3 3 1 1 4 2 +4 1 2 1 2 3 4 1 3 3 2 4 1 1 +1 1 2 1 2 2 1 3 1 1 1 1 1 3 1 2 1 3 +2 1 1 4 1 4 4 4 3 2 1 2 1 1 4 1 +1 1 1 1 1 3 1 1 1 3 1 4 1 3 1 1 1 +1 1 3 1 2 2 2 1 7 2 2 1 2 2 2 1 +2 1 1 3 3 1 1 2 1 2 1 2 1 1 2 1 2 +1 2 4 1 1 1 5 3 2 3 4 3 1 +1 1 4 2 4 1 1 1 4 2 1 1 1 1 +3 1 1 1 1 2 5 2 1 1 1 1 1 2 1 7 1 +1 3 1 2 1 2 1 1 4 4 2 5 1 3 1 +3 1 1 1 1 1 2 2 4 1 1 1 1 1 2 4 1 1 +1 1 1 6 2 1 1 1 2 3 1 1 2 2 6 1 +3 3 2 1 4 1 1 3 1 2 3 4 4 +4 1 6 2 1 1 1 2 3 2 1 1 2 1 2 2 +1 1 4 1 1 3 3 2 1 1 1 1 1 4 3 +1 1 2 4 2 1 2 2 2 4 2 1 3 1 2 1 2 1 +15 3 3 1 3 3 1 1 3 1 3 1 +2 3 3 3 2 2 1 4 2 2 1 1 2 +3 2 2 2 1 5 1 1 2 1 1 2 1 2 1 1 1 2 1 +2 2 1 1 1 4 4 2 2 3 1 1 3 1 2 2 +3 4 3 4 1 1 1 2 1 1 3 1 3 2 2 +1 1 1 3 2 5 2 4 2 2 3 1 4 3 3 +2 2 1 2 3 1 4 4 1 2 1 1 1 3 2 3 2 +1 3 2 7 1 1 1 1 3 1 1 1 1 7 +1 2 1 1 2 1 2 1 1 1 4 5 1 3 2 1 +2 3 1 2 1 5 1 3 3 2 1 2 1 1 1 3 +2 2 1 1 1 4 1 7 1 3 1 1 1 1 1 1 +4 3 2 1 1 2 2 1 3 1 2 2 2 1 1 1 4 +1 4 1 1 3 5 4 2 2 1 2 1 1 2 1 1 +1 2 3 1 7 2 3 2 3 1 1 1 2 +1 1 2 2 3 3 1 3 1 2 1 1 3 4 1 1 +1 4 2 4 3 2 1 1 1 4 4 1 2 +1 2 1 1 1 1 4 1 1 1 5 1 1 1 1 1 1 +4 1 2 1 1 3 3 1 5 1 1 1 1 1 1 +2 2 1 1 2 2 1 9 4 1 1 1 1 1 1 +1 4 9 4 8 2 3 1 1 2 5 +1 1 1 4 1 1 3 5 1 1 2 1 3 2 +4 5 1 4 1 2 1 2 2 2 2 2 diff --git a/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/datos_filas b/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/datos_filas index 560120721a498657508123ba7d7df5abe2f0798f..044447205b5c9fda9a3b4ee2fdcb342a5466007c 100644 --- a/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/datos_filas +++ b/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/datos_filas @@ -1,31 +1,62 @@ -30 -1 1 3 8 2 1 -1 2 2 3 1 2 1 2 -1 1 1 4 1 5 1 1 -1 1 1 1 1 2 2 2 -4 3 2 1 1 2 1 -2 4 2 2 5 3 -3 2 1 2 1 2 3 2 -1 2 2 1 1 2 3 1 1 -1 1 7 1 2 1 1 -1 1 2 1 1 2 1 -5 1 1 2 1 2 1 3 1 -2 1 1 1 1 3 1 3 1 -1 1 2 1 3 4 1 2 -1 4 3 -2 1 1 1 2 1 1 1 -1 2 1 3 1 3 4 1 1 1 -2 1 3 3 2 1 1 1 -1 3 2 1 1 1 2 1 2 1 -3 3 3 1 1 3 1 2 -4 2 1 3 3 5 1 -1 2 5 2 3 1 1 -4 2 2 3 1 1 1 1 -1 1 1 1 1 2 4 1 -1 1 1 1 2 1 1 2 2 -2 2 2 2 1 1 2 -5 1 1 2 1 7 1 -2 1 2 2 2 2 1 1 -3 2 1 4 3 2 -1 1 3 1 2 1 1 -6 1 2 2 1 2 2 +61 +2 1 2 3 1 1 1 1 2 1 1 2 3 1 2 1 4 1 +1 3 1 1 2 3 4 1 1 1 2 1 4 1 3 2 1 +1 1 2 7 1 1 8 3 1 1 1 1 1 2 +2 1 1 1 1 1 1 1 2 1 1 2 1 5 1 1 +4 5 1 2 1 2 1 1 3 1 1 3 1 1 1 1 1 +1 1 1 3 1 1 1 2 1 1 1 1 3 2 1 2 1 3 3 1 +2 2 1 2 3 1 1 5 1 3 2 1 1 1 1 3 1 1 1 +3 1 5 2 1 1 1 2 1 1 1 3 3 1 +3 5 3 2 4 2 2 1 2 1 2 1 3 4 1 1 +3 1 2 1 3 2 1 1 1 2 2 1 2 1 1 1 1 1 +1 1 1 3 1 1 1 1 1 1 1 3 1 2 1 2 1 1 +2 3 6 5 1 1 1 4 1 1 3 2 2 1 +5 3 6 2 1 1 2 1 3 1 1 1 1 2 +1 1 1 1 2 1 2 4 1 1 1 1 2 1 2 +1 2 3 2 1 2 1 2 3 3 3 1 2 1 4 +1 1 1 1 1 1 1 1 4 2 2 2 2 1 5 3 4 +1 3 1 1 1 1 1 1 1 8 2 3 1 3 4 1 1 +1 3 2 5 5 2 3 1 1 1 1 2 4 1 +1 1 3 3 1 1 1 8 1 2 3 8 1 3 +3 4 2 1 1 2 1 2 1 2 1 2 1 1 2 2 +4 1 1 2 1 2 1 1 1 1 3 2 2 1 2 1 +4 2 1 1 2 3 1 1 4 2 1 2 2 4 3 2 +1 1 1 3 1 1 3 4 1 2 2 2 1 5 +3 3 2 1 2 1 3 1 1 2 6 4 2 3 1 +1 1 2 1 5 1 3 1 9 4 1 1 1 +4 4 1 2 1 2 1 1 1 2 2 1 1 2 +4 3 2 2 1 1 2 3 2 1 2 1 3 1 3 1 +5 1 1 3 1 2 1 4 1 2 4 3 1 1 1 2 +2 5 3 4 1 2 1 1 1 3 3 2 2 1 +1 9 2 4 1 3 1 1 2 3 1 4 6 +1 2 1 5 1 3 4 1 1 1 2 2 1 1 3 2 3 1 +1 1 1 1 6 2 1 3 2 1 1 1 2 1 2 3 +3 1 2 2 3 1 4 5 11 10 +1 1 3 3 1 2 5 1 2 1 2 4 +1 1 1 1 6 1 1 1 1 1 2 1 2 1 3 +3 1 3 1 2 4 3 2 4 3 1 1 2 2 +1 1 1 1 1 3 1 1 1 1 1 1 2 1 1 3 2 5 +5 5 1 1 3 1 3 3 1 4 3 1 1 1 1 +1 1 2 1 1 1 4 1 4 2 1 2 1 4 2 8 +1 2 1 3 1 3 2 3 4 2 1 1 1 1 1 2 1 +1 1 1 2 1 2 4 1 1 1 3 2 3 1 1 3 1 +3 3 2 2 1 2 1 1 3 1 1 +1 5 1 1 3 1 5 3 1 2 4 4 3 2 +1 1 1 1 1 1 1 4 1 1 5 1 2 4 2 4 +3 2 3 1 3 5 1 1 1 2 1 1 1 +1 1 1 1 4 3 1 2 2 1 2 1 1 1 1 2 +2 7 1 2 1 1 1 1 1 1 2 1 3 3 1 +1 1 3 2 2 2 3 1 1 2 1 2 1 1 1 +1 1 2 1 1 3 1 1 1 2 2 1 1 5 5 2 3 +2 1 1 1 1 1 1 2 2 2 2 2 1 2 1 1 2 +2 1 2 4 1 2 2 1 1 1 1 5 2 2 3 1 +2 2 1 1 2 1 3 1 4 2 1 2 1 2 +1 1 6 1 1 1 1 1 4 2 1 2 3 2 3 +1 1 1 1 1 5 4 1 1 2 1 2 1 1 2 +1 4 2 3 1 5 4 3 1 2 1 1 +2 1 3 1 1 2 1 1 2 2 1 1 6 2 +1 2 1 3 2 1 1 1 2 2 1 1 2 1 4 3 1 2 +2 2 1 1 1 5 3 1 1 2 2 1 2 1 2 2 2 +1 3 2 3 9 3 2 2 1 4 1 1 3 2 +1 2 1 1 6 1 1 3 1 1 2 2 1 1 1 +1 3 1 2 2 1 3 1 1 3 1 8 2 1 1 1 diff --git a/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/newGA.req.cc b/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/newGA.req.cc index 86e6f15f6ce176630b27234a3942b15dc01030db..11635865db5358fe1cd01bac6ee6266a22087bf6 100644 --- a/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/newGA.req.cc +++ b/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/newGA.req.cc @@ -252,25 +252,28 @@ skeleton newGA Problem::~Problem() { + int size =_datosFilas.size(); for(int i =0; i < (size-1);i++) { _datosFilas[i].clear(); - std::vector<int>(_datosFilas[i]).swap(_datosFilas[i]); + std::vector<int>().swap(_datosFilas[i]); } - std::vector<std::vector<int>>(_datosFilas).swap(_datosFilas); + _datosFilas.clear(); + std::vector<std::vector<int>>().swap(_datosFilas); size =_datosColumnas.size(); for(int i =0; i < (size-1);i++) { _datosColumnas[i].clear(); - std::vector<int>(_datosColumnas[i]).swap(_datosColumnas[i]); + std::vector<int>().swap(_datosColumnas[i]); } - std::vector<std::vector<int>>(_datosColumnas).swap(_datosColumnas); + _datosColumnas.clear(); + std::vector<std::vector<int>>().swap(_datosColumnas); _cantGruposColumna.clear(); - std::vector<int>(_cantGruposColumna).swap(_cantGruposColumna); + std::vector<int>().swap(_cantGruposColumna); _cantGruposFila.clear(); - std::vector<int>(_cantGruposFila).swap(_cantGruposFila); + std::vector<int>().swap(_cantGruposFila); } // Solution -------------------------------------------------------------- @@ -950,10 +953,10 @@ skeleton newGA for (int i=0; i < _var.size();i++) { _var[i].clear(); - std::vector<int>(_var[i]).swap(_var[i]); + std::vector<int>().swap(_var[i]); } _var.clear(); - std::vector<std::vector<int>>(_var).swap(_var); + std::vector<std::vector<int>>().swap(_var); //F} //cout << "ESTOY EN DESTRUCTOR" << endl; @@ -1341,7 +1344,7 @@ 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); + bool fin=(currentBestFitness == 0); // || (int) (solver.current_time_spent() - solver.time_best_found_trial()) > 20000000); // if (currentBestFitness == 0) // { // cout << "corta bien" << endl; diff --git a/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/newGA.req.o b/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/newGA.req.o index 28d94e2331b05862135200d02c0b2c6197435ed5..fbcb522b96d53657fae0919a9ac2ab2918282688 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 d3c0ef38c1d10da656f7345fd0c520c21716c056..5a0c63082712038ff8423bd6b2e8c880bfe809e5 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 211400 409200 80000 799 3.00496e+06 3.52394e+06 -2 199100 423700 90000 899 2.4487e+06 2.70782e+06 -3 213200 427000 89100 890 2.22307e+06 2.49344e+06 -4 185600 410500 93700 936 2.50006e+06 2.66535e+06 -5 203900 407000 98100 980 2.48428e+06 2.53066e+06 -6 199300 409000 95600 955 2.40353e+06 2.51604e+06 -7 201000 409800 98100 980 2.42515e+06 2.47467e+06 -8 153000 410200 99900 998 2.98729e+06 2.99817e+06 -9 319300 418900 100 0 0 0 -10 340700 418400 100 0 0 0 +1 206500 492700 84600 845 2.83802e+06 3.23284e+06 +2 243000 495800 94500 944 2.33742e+06 2.48343e+06 +3 229900 495200 99800 997 2.44763e+06 2.45486e+06 +4 230900 487500 96100 960 2.40143e+06 2.49853e+06 +5 221300 483900 99800 997 2.49152e+06 2.49936e+06 +6 229700 481000 99900 998 2.44198e+06 2.4475e+06 +7 232000 480600 97000 969 2.37926e+06 2.45258e+06 +8 227500 481400 99400 993 2.54024e+06 2.55843e+06 +9 240100 482800 85200 851 2.1154e+06 2.48859e+06 +10 217800 478400 98100 980 2.55483e+06 2.59975e+06 ------------------------------------------------------------------ diff --git a/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/solution b/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/solution index eb0d5517e481085b830c4e42c14bcf7b81cc0678..c3ac967cebb2dac3c8a76923ea1e26b2da3c4ec2 100644 --- a/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/solution +++ b/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/solution @@ -1,30 +1,61 @@ -0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0 1 0 0 0 0 0 0 1 0 0 0 1 1 0 0 1 1 0 1 0 1 1 0 0 1 0 0 0 0 -0 1 0 0 0 0 1 0 1 0 0 0 0 1 1 0 0 0 1 0 1 1 1 0 0 0 0 1 0 1 -0 1 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -0 0 0 1 1 1 1 0 1 1 1 0 1 0 1 0 0 0 1 0 1 1 0 0 0 1 0 0 0 0 -1 0 1 1 1 1 0 0 1 1 0 0 0 1 1 0 0 0 1 1 1 1 1 0 1 1 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 1 0 0 0 1 1 0 1 0 1 1 1 -0 0 0 1 0 1 1 0 1 0 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 0 0 0 1 -0 1 0 1 0 0 1 1 1 1 1 1 0 1 1 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 -1 0 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 0 0 1 1 1 0 0 0 1 0 0 0 -1 1 1 1 1 0 0 1 0 1 0 0 0 1 0 1 0 1 1 0 1 0 1 1 1 0 0 1 0 0 -0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 1 0 1 0 1 1 0 1 1 1 0 0 0 0 1 -1 1 0 1 0 0 0 1 1 0 0 0 1 0 0 0 1 1 0 1 1 1 1 0 0 1 0 0 1 1 -0 0 0 0 0 0 0 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 -0 0 1 1 0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 1 0 1 0 0 0 1 0 0 1 0 -0 1 0 1 1 0 0 1 1 0 1 1 0 0 1 0 1 1 1 1 0 0 1 1 1 1 0 1 1 0 -1 1 0 0 0 0 0 1 0 0 0 1 0 1 1 1 0 0 1 1 0 0 1 0 0 1 0 1 1 0 -0 0 1 0 1 1 0 1 1 0 0 1 1 0 0 1 0 1 1 0 1 1 0 1 1 0 1 0 1 0 -1 0 1 1 1 0 0 0 0 0 1 1 1 0 1 1 1 0 1 1 0 1 1 0 0 0 1 0 1 1 -1 1 1 1 0 1 0 1 0 0 0 1 1 1 0 0 1 1 1 1 0 0 0 1 1 1 1 1 0 0 -1 0 0 0 1 1 0 1 1 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 1 1 -0 0 0 1 1 1 1 1 0 1 0 1 1 1 0 1 1 0 1 0 0 0 1 0 1 1 1 0 0 1 -0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 1 1 0 0 1 1 1 1 -1 0 0 1 1 1 0 1 1 1 1 0 1 0 0 1 0 1 1 0 0 0 1 0 0 1 1 0 0 1 -0 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 1 0 0 1 0 1 0 1 1 0 0 1 1 1 -1 1 0 1 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 0 0 0 1 1 1 1 0 0 0 0 -0 0 1 0 0 0 1 0 1 0 1 1 0 0 0 1 0 1 1 1 1 1 0 0 0 1 0 1 1 0 -1 1 1 1 1 1 0 1 1 1 0 0 1 1 1 0 1 1 1 0 1 1 0 1 1 1 1 0 0 0 -0 0 0 0 0 0 1 1 0 0 1 1 0 1 1 1 0 0 1 1 0 1 1 0 0 1 0 1 1 1 -1 1 1 1 1 1 1 1 1 1 1 0 1 0 0 1 1 1 0 1 0 1 0 1 1 1 1 0 1 1 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 +0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 1 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 1 0 1 0 0 0 +1 0 0 0 0 1 0 0 1 0 0 0 0 1 1 0 0 0 1 0 0 1 0 1 0 0 1 0 1 0 1 0 0 0 1 1 0 0 1 0 0 0 1 0 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 +1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 1 0 1 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 +1 0 0 0 0 0 0 0 1 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 1 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 +1 0 0 0 1 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 +0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 1 0 1 1 0 0 1 0 0 1 0 0 0 1 1 0 0 1 0 1 0 1 +0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 1 0 0 0 1 0 1 0 1 +0 0 1 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 1 1 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 1 0 1 +0 0 1 0 0 0 0 0 1 0 0 1 1 0 1 0 1 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 1 1 1 0 1 0 0 1 1 0 0 1 0 0 0 0 1 0 0 0 0 0 1 +0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 1 0 0 1 0 0 0 1 0 0 0 1 1 0 0 0 0 0 1 0 0 0 1 1 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 +0 0 0 0 0 0 0 1 1 0 1 1 0 1 1 1 0 0 0 0 0 1 1 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 1 0 1 1 0 1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 +1 0 0 0 1 0 0 1 1 0 0 1 0 1 0 1 1 0 0 1 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 1 1 1 0 1 1 1 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 +1 0 0 0 0 0 0 1 1 0 1 1 0 1 0 1 1 0 1 1 0 1 1 1 1 0 1 0 0 0 1 0 0 1 0 1 1 0 1 1 0 0 1 0 1 0 0 0 0 1 1 0 1 0 0 0 0 1 0 0 +0 0 0 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 0 1 0 0 0 1 1 0 1 0 1 0 1 1 0 0 0 1 0 1 +0 1 0 1 1 0 0 0 0 0 0 1 1 1 1 0 1 0 1 0 0 0 0 0 1 0 1 1 1 0 0 0 0 0 0 1 1 1 0 0 1 0 0 0 0 1 1 0 1 1 1 1 0 1 1 0 0 1 0 1 +0 0 0 1 0 0 0 0 0 0 0 1 1 1 1 1 1 0 1 1 0 0 0 1 1 0 0 0 1 0 0 0 0 1 0 1 1 0 0 0 1 1 1 0 1 0 0 0 0 1 0 1 1 0 1 0 0 1 0 1 +1 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 1 0 1 0 1 1 0 1 0 1 0 0 0 0 0 0 1 1 1 0 1 1 0 0 0 1 1 0 0 0 0 1 0 1 +1 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 1 0 1 1 1 0 0 0 0 1 0 0 0 1 1 1 1 0 0 1 0 1 0 1 1 1 0 0 0 1 0 1 0 0 0 1 1 1 1 0 1 +0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 1 1 0 0 1 1 1 0 1 1 0 0 0 0 1 1 0 0 1 1 0 0 1 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 1 0 0 +1 1 1 0 1 1 1 0 0 0 1 1 1 1 0 1 1 0 0 1 1 0 1 0 0 1 1 0 0 0 0 1 0 1 0 1 0 1 1 0 0 0 0 1 1 1 1 1 0 1 1 1 0 0 0 0 1 1 1 0 +0 1 0 1 1 0 0 0 1 1 1 0 1 1 1 1 1 0 1 1 1 0 1 0 1 1 1 0 1 0 1 1 1 1 1 1 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 +1 0 1 1 0 1 0 0 1 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 1 0 1 1 0 0 0 0 0 0 1 1 0 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 0 1 0 1 0 +1 1 0 1 0 1 1 1 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 1 0 0 1 1 0 0 1 0 0 0 0 1 0 0 0 1 1 0 1 1 1 1 1 1 0 1 0 1 1 0 0 1 1 0 0 +1 0 0 0 0 0 0 1 1 1 0 1 1 0 1 0 0 1 1 0 1 1 0 1 1 0 1 1 0 1 0 0 0 1 1 0 0 1 1 1 0 1 1 1 1 1 0 0 0 1 1 0 1 1 0 1 0 1 1 0 +1 1 1 0 0 0 0 0 1 0 0 1 1 1 0 1 1 1 1 1 0 1 1 0 0 1 1 0 0 1 1 1 0 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 0 1 0 0 0 1 1 0 1 1 1 0 +0 1 1 0 1 1 1 1 1 1 1 1 0 0 1 0 0 0 0 1 1 1 1 0 1 0 0 1 1 1 1 1 1 0 1 1 0 0 0 1 1 0 1 1 0 0 0 1 1 0 1 1 0 0 0 1 1 1 1 1 +1 1 1 0 1 1 0 0 0 0 1 0 0 0 0 1 1 0 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 1 0 0 1 1 0 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 1 0 0 0 1 0 +1 0 1 0 1 0 1 1 1 1 0 1 1 0 1 1 0 0 1 0 1 1 1 0 1 0 1 1 1 0 1 1 0 0 1 0 0 1 1 1 0 1 0 0 1 1 1 1 1 0 0 1 1 1 0 1 0 0 0 0 +1 1 1 0 0 0 1 0 1 1 1 0 0 0 1 0 1 1 1 1 1 0 1 1 1 1 0 0 1 1 1 0 1 1 1 1 1 0 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 +0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 0 0 0 0 1 0 0 1 1 0 0 1 1 1 1 0 1 1 0 0 0 1 1 1 1 0 1 0 1 1 1 0 0 0 1 1 1 0 1 1 1 0 1 0 1 +1 1 0 1 0 1 1 1 0 0 1 0 0 0 1 1 1 1 1 0 0 1 0 1 1 0 0 0 1 0 1 0 0 0 1 1 1 0 0 0 1 1 0 1 0 0 1 1 1 0 0 1 1 0 1 0 1 1 1 1 +0 1 1 1 1 0 0 1 0 1 0 1 1 0 1 0 1 1 1 1 0 1 1 0 1 0 1 1 1 1 0 1 1 1 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 1 1 1 0 1 1 0 1 1 0 1 +1 0 1 0 0 1 1 0 0 1 1 1 1 0 1 1 0 0 0 1 1 1 1 0 1 1 1 0 0 1 0 1 0 0 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 0 1 0 1 1 0 1 1 1 1 1 +1 1 1 1 1 0 0 1 1 1 0 1 1 0 1 1 1 0 1 1 0 0 1 1 1 0 1 1 0 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 0 0 1 1 1 1 0 1 0 1 1 1 1 1 0 +0 1 1 1 0 1 1 0 0 1 1 0 0 1 0 0 1 1 1 1 0 1 1 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 0 1 0 0 0 1 0 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 +1 0 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 0 0 1 1 1 1 0 0 0 1 0 0 0 1 1 1 1 0 1 0 1 1 0 1 1 0 0 1 1 0 1 0 0 0 0 1 1 0 0 +0 1 1 1 0 1 1 1 0 0 1 1 1 0 0 1 1 0 0 0 1 0 1 0 1 1 1 1 1 1 0 1 1 0 0 1 0 0 1 0 1 1 1 1 1 0 1 1 1 0 1 0 1 1 1 0 1 0 1 1 +1 1 1 0 1 0 0 1 1 1 1 1 0 1 1 1 1 1 1 0 0 1 0 1 1 1 1 0 1 0 1 1 0 0 1 1 0 0 0 0 0 0 0 1 0 0 1 1 1 1 1 0 0 0 0 1 1 1 1 1 +0 0 1 1 0 1 1 1 1 1 0 1 1 1 1 0 0 0 1 0 1 0 1 0 0 0 0 1 1 1 0 1 1 0 0 0 0 1 1 1 0 1 1 0 1 1 1 1 1 0 0 1 1 1 1 0 1 1 1 0 +1 1 0 1 0 1 0 1 1 0 1 1 1 0 0 1 1 0 1 1 0 1 1 1 1 1 1 0 0 0 1 1 0 0 1 0 0 0 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 0 0 1 1 +0 1 1 1 1 0 1 1 1 0 0 0 1 1 1 0 0 1 0 0 0 0 0 0 1 0 1 1 1 1 0 0 1 1 0 1 1 0 1 0 1 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 0 0 1 0 +1 0 1 1 1 1 0 0 0 0 1 1 0 1 0 1 1 1 1 0 0 1 0 1 0 1 0 0 1 0 1 1 0 1 1 1 1 1 0 1 0 0 0 1 0 0 1 1 0 0 0 0 1 0 1 1 1 1 0 0 +0 1 0 1 0 1 1 1 0 0 1 0 1 0 0 1 0 0 0 0 1 1 1 0 1 1 1 0 0 1 0 1 1 1 1 0 0 0 1 1 0 1 1 0 1 1 1 0 1 1 1 1 0 0 1 1 1 1 1 1 +1 1 1 1 1 1 0 0 1 0 0 0 1 1 1 1 0 0 1 1 0 1 1 1 0 1 1 1 1 1 1 0 0 0 0 1 1 0 0 1 1 0 1 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 0 1 +0 0 1 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 0 0 1 1 1 1 0 1 1 1 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 0 1 0 1 0 1 1 1 1 1 0 0 0 +1 1 0 0 1 0 1 1 1 1 0 1 0 0 0 1 0 1 1 0 0 1 0 1 1 0 1 0 1 1 0 0 0 1 1 1 1 1 0 0 0 0 0 0 1 0 1 1 0 0 1 1 0 1 0 0 0 1 1 0 +0 0 1 1 0 1 1 0 1 0 1 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 0 1 1 1 1 1 1 1 0 1 0 1 1 0 0 0 0 1 1 1 1 0 0 1 +1 1 0 1 1 1 1 1 1 1 1 0 0 1 0 1 1 1 1 0 0 0 1 1 1 0 1 0 1 0 0 1 1 1 0 1 1 1 1 0 0 1 0 1 1 0 1 0 0 0 1 1 1 0 0 0 0 1 1 1 +0 0 1 0 1 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 1 1 0 1 1 0 0 0 0 1 1 1 1 0 1 0 +1 1 1 1 1 1 1 1 1 1 0 0 0 1 0 1 0 1 1 1 0 0 1 1 1 0 0 0 1 0 1 0 1 1 1 0 1 1 0 1 1 0 1 0 0 0 1 0 0 0 1 1 1 0 0 0 0 1 0 1 +0 1 1 0 0 0 1 1 1 0 0 1 1 0 0 0 1 0 1 0 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 0 0 1 0 1 1 1 1 0 1 1 1 1 1 0 0 0 1 1 1 1 1 0 1 +1 1 1 1 1 1 0 0 0 1 0 0 0 1 1 1 0 0 1 0 0 1 1 0 1 0 1 1 0 0 1 0 1 1 1 0 0 1 0 1 0 0 0 1 1 1 1 0 0 1 1 1 1 1 0 0 0 0 1 0 +1 1 1 0 1 1 1 1 1 0 1 1 1 0 0 1 1 0 0 1 1 1 1 1 1 1 0 0 1 1 1 1 0 1 0 1 1 0 1 0 0 1 1 1 1 1 0 1 1 0 1 0 1 0 1 1 1 1 1 1 +1 0 0 1 0 0 1 0 1 1 0 0 1 0 1 1 1 1 1 1 0 1 0 0 1 0 1 1 1 0 1 1 0 1 1 1 0 1 1 1 1 1 1 0 1 1 1 0 0 1 0 1 0 1 0 0 0 1 1 1 +1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 1 0 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 0 1 0 0 0 0 1 0 1 1 1 1 0 1 0 1 0 1 1 1 1 0 0 +1 0 0 1 1 1 0 0 0 0 1 0 0 0 1 0 1 1 1 1 0 1 0 1 0 0 0 1 0 0 0 0 0 0 1 1 0 1 0 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 0 0 0 1 1 1 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1