]> git.llucax.com Git - z.facultad/75.29/susanita.git/blob - src/main.cpp
cambios_para_backtracking
[z.facultad/75.29/susanita.git] / src / main.cpp
1 #include "backtracking.h"
2 #include "galeshapley.h"
3 #include "parser.h"
4 #include <iostream>
5
6 int
7 main(int argc, char* argv[])
8 {
9         switch (argc)
10         {
11                 case 2: //Gale-Sharpley por default
12                 {
13                         // N * 2 para asegurar que el hash este ocupado al 50% y sea O(1)
14                         GaleShapley gs(Parser::get_n(argv[1]) * 2);
15                         Parser p(gs);
16         
17                         if (!p.input(argv[1]))
18                         {
19                                 std::cerr << "Error al abrir el archivo '" << argv[1] << "'\n";
20                                 return 2;
21                         }
22                         gs.casamentear();
23                         p.output();
24                         
25                         break;
26                 }
27                 case 3: // BackTracking se especifica con tercer parámetro "-bt"
28                 {               
29                         if (strcmp(argv[2], "-bt"))
30                         {
31                                 std::cerr << "Uso: " << argv[0] << " archivo_entrada [-bt]\n";
32                                 return 1;
33                         }
34
35                         // N * 2 para asegurar que el hash este ocupado al 50% y sea O(1)
36                         BackTracking bt(Parser::get_n(argv[1]) * 2);
37                         Parser p(bt);
38
39                         if (!p.input(argv[1]))
40                         {
41                                 std::cerr << "Error al abrir el archivo '" << argv[1] << "'\n";
42                                 return 2;
43                         }
44
45                         bt.casamentear();
46                         
47                         break;
48                 }
49
50                 default:
51                         std::cerr << "Uso: " << argv[0] << " archivo_entrada [-bt]\n";
52                         return 1;
53         }
54
55         // Todo OK
56         return 0;
57
58 }
59
60