X-Git-Url: https://git.llucax.com/z.facultad/75.29/susanita.git/blobdiff_plain/e712cf784660fb25651128c4626c9c337a9ae7ce..3cf8caf3c30d7790d1467466ecd556b399cbb301:/src/main.cpp diff --git a/src/main.cpp b/src/main.cpp index 4bb730b..b3a5110 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,60 +1,47 @@ #include "backtracking.h" #include "galeshapley.h" #include "parser.h" +#include "timer.h" #include int main(int argc, char* argv[]) { + Susanita* susanita = 0; switch (argc) { case 2: //Gale-Sharpley por default - { - // N * 2 para asegurar que el hash este ocupado al 50% y sea O(1) - GaleShapley gs(Parser::get_n(argv[1]) * 2); - Parser p(gs); - - if (!p.input(argv[1])) - { - std::cerr << "Error al abrir el archivo '" << argv[1] << "'\n"; - return 2; - } - gs.casamentear(); - p.output(); - + // 2N*2 para asegurar que el hash este ocupado al 50% + // y sea O(1) (2N porque guarda nombres de mujer y de + // hombre y * 2 para que esté ocupado al 50%) + susanita = new GaleShapley(Parser::get_n(argv[1]) * 4); break; - } case 3: // BackTracking se especifica con tercer parámetro "-bt" - { if (strcmp(argv[2], "-bt")) { std::cerr << "Uso: " << argv[0] << " archivo_entrada [-bt]\n"; return 1; } - - // N * 2 para asegurar que el hash este ocupado al 50% y sea O(1) - BackTracking bt(Parser::get_n(argv[1]) * 2); - Parser p(bt); - - if (!p.input(argv[1])) - { - std::cerr << "Error al abrir el archivo '" << argv[1] << "'\n"; - return 2; - } - - bt.casamentear(); - + // Ver anterior + susanita = new BackTracking (Parser::get_n(argv[1]) * 4); break; - } - default: std::cerr << "Uso: " << argv[0] << " archivo_entrada [-bt]\n"; - return 1; + return 2; } - + Parser p(*susanita); + if (!p.input(argv[1])) + { + std::cerr << "Error al abrir el archivo '" << argv[1] << "'\n"; + delete susanita; + return 3; + } + timer t; + susanita->casamentear(); + p.output(); // Todo OK + delete susanita; return 0; } -