title: Problem returning to Origin Node using Adjacency Matrix
body: <p>I have to run all USA cities(41 in the map we were given) using an adjacency matrix. 
  The user must type the origin node, and then the algorithm has to run all USA cities, and then return to the origin.</p>
  
  <pre><code>    /* C program for solution of Hamiltonian Cycle problem 
     using backtracking */
  #include&lt;stdio.h&gt;
  
  // Number of vertices in the graph
  
  #define infinite 0x3fffffff
  #define V 41
  
  void printSolution(int path[]);
  
  /* A utility function to check if the vertex v can be added at 
     index 'pos' in the Hamiltonian Cycle constructed so far (stored 
     in 'path[]') */
  bool isSafe(int v, int graph[V][V], int path[], int pos)
  {
      /* Check if this vertex is an adjacent vertex of the previously 
         added vertex. */
      if (graph [ path[pos-1] ][ v ] == infinite)
          return false;
  
      /* Check if the vertex has already been included. 
        This step can be optimized by creating an array of size V */
      for (int i = 0; i &lt; pos; i++)
          if (path[i] == v)
              return false;
  
      return true;
  }
  
  /* A recursive utility function to solve hamiltonian cycle problem */
  bool hamCycleUtil(int graph[V][V], int path[], int pos)
  {
      /* base case: If all vertices are included in Hamiltonian Cycle */
      if (pos == V)
      {
          // And if there is an edge from the last included vertex to the 
          // first vertex 
          if ( graph[ path[pos-1] ][ path[0] ] &gt; 0 )
              return true;
          else
              return false;
      }
  
      // Try different vertices as a next candidate in Hamiltonian Cycle. 
      // We don't try for 0 as we included 0 as starting point in hamCycle() 
      for (int v = 0; v &lt; V; v++)
      {
          /* Check if this vertex can be added to Hamiltonian Cycle */
          if (isSafe(v, graph, path, pos))
          {
              path[pos] = v;
  
              /* recur to construct rest of the path */
              if (hamCycleUtil (graph, path, pos+1) == true)
                  return true;
  
  
              path[pos] = infinite;
          }
      }
  
  
      return false;
  }
  
  bool hamCycle(int graph[V][V], int origin)
  {
      int f;
      int *path = new int[V];
      for (int i = 0; i &lt; V; i++) {
          path[i] = infinite;
          f++;
      }
      printf("Nodes andadas: %d", f);
  
      path[0] = origin;
      if ( hamCycleUtil(graph, path, 1) == false )
      {
          printf("\nSolution does not exist");
          return false;
      }
  
      printSolution(path);
      return true;
  }
  
  /* A utility function to print solution */
  void printSolution(int path[])
  {
      printf ("Solution Exists:"
              " Following is one Hamiltonian Cycle \n");
      for (int i = 0; i &lt; V; i++)
          printf(" %d --&gt; ", path[i]);
  
      // Let us print the first vertex again to show the complete cycle 
      printf(" %d ", path[0]);
      printf("\n");
  }
  
  // driver program to test above function 
  int main()
  {
      int origin;
      /* Let us create the following graph
         (0)--(1)--(2)
          |   / \   |
          |  /   \  |
          | /     \ |
         (3)-------(4)    */
      int graph1[V][V] =  {     0,       500,    170, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite,        infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite,
              500,     0,      420, infinite, 420, infinite, infinite, infinite, infinite, infinite, infinite,                 670, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite,
              170,     420,    0 ,   640, 580, infinite, infinite, infinite, infinite, infinite, infinite,                infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite,
              /*SF-3*/            infinite, infinite, 640, 0 , 300,  380, infinite, infinite, infinite, infinite, infinite,                    infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite,
              infinite, 420, 580, 300,  0, infinite, infinite, 780, infinite, infinite, infinite,                         infinite,      520, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite,
              infinite, infinite, infinite, 380, infinite, 0, 120, 160, 270, infinite, infinite,                           infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite,
              infinite, infinite, infinite, infinite, infinite, 120, 0, 140, infinite, infinite, 350,                     infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite,
              infinite, infinite, infinite, infinite, 780, 160, 140, 0, 290, 440, infinite,                                infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite,
              /*las vegas - 8*/   infinite, infinite, infinite, infinite, infinite, 270, infinite, 290, 0, 470, infinite,                     infinite,      420, infinite, infinite, infinite, infinite,infinite, infinite, infinite, infinite,  infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite,
              infinite, infinite, infinite, infinite, infinite, infinite, infinite, 440, 470, 0, 360,                     infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite,
              infinite, infinite, infinite, infinite, infinite, infinite, 350, infinite, infinite, 360, 0,                    infinite,      660, infinite, infinite, infinite, infinite, infinite, infinite, infinite,     1070,      990, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite,
  
              infinite, 670, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite,    0,       infinite,      930, infinite, infinite, infinite,     1340, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite,
              infinite, infinite, infinite, infinite, 520, infinite, infinite, infinite, 420, infinite, 660,  infinite,                     0,      530, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite,
              infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite,  930, 530,                0,      160,      170,      120, infinite,      540, infinite, infinite, infinite, infinite, infinite, infinite,  infinite, infinite, infinite,infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite,
              infinite, infinite, infinite, infinite, infinite, infinite, infinite,  infinite, infinite, infinite, infinite, infinite, infinite, 160,           0,      80, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite,
              infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite,  infinite, infinite,  infinite, infinite, 170,           80,      0,      180, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite,
              /*colorado-17*/     infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, 120, infinite,          180,       0, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite,
              infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite,  1340, infinite, infinite, infinite, infinite, infinite,          0,      380, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite,      340,      410, infinite, infinite, infinite, infinite, infinite,
              infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, 540, infinite, infinite, infinite, 380,                 0,     190, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite,      470, infinite, infinite, infinite, infinite, infinite,
              /*20*/              infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite,  infinite, infinite, infinite, infinite, infinite, infinite, infinite, 190,           0,      550, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite,      250, infinite,
              infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, 1070,  infinite, infinite, infinite, infinite, infinite, 730, infinite, infinite, 550,                     0,     280,      250, infinite, infinite, infinite, infinite,      790, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite,      320,
              infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, 990,  infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite,  280,               0,      310, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite,
              infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite,  infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, 250, 310,                0,      530, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite,
              infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite,  infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, 530,           0,      860, infinite,      640,      470, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite,
              infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite,  infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, 860,            0,      30,      230, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite,
              /*26*/              infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite,  infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, 30,            0,      180, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite,
              infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, 640, 230, 180,                     0,      440, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite,
              infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, 790, infinite, infinite, 470, infinite, infinite, 440,                      0,     560, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite,      240,      390, infinite, infinite,
              infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, 560,            0,     200, infinite, infinite, infinite, infinite, infinite, infinite, infinite,      710, infinite, infinite, infinite,
              infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite,  infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, 200,           0,      240, infinite, infinite,      530, infinite,      700,      590, infinite, infinite, infinite, infinite,
              infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite,  infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite,infinite, 240,            0,      210,      150,      640, infinite, infinite, infinite, infinite, infinite, infinite, infinite,
              infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite,  infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, 210,            0,     170, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite,
              infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite,  infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, 150, 170,                 0,     650, infinite, infinite, infinite, infinite, infinite, infinite, infinite,
              /*34*/              infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite,  infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, 530, 640, infinite, 650,                     0, infinite,      280, infinite, infinite, infinite, infinite, infinite,
              infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite,  infinite, infinite, infinite, infinite, 340, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite,           0,       90, infinite, infinite, infinite, infinite, infinite,
              infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite,  infinite, infinite, infinite, infinite, 410, 470, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, 530, infinite, infinite, infinite, 280, 90,                                 0,     180, infinite, infinite,      300, infinite,
              infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite,  infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, 590, infinite, infinite, infinite, infinite, infinite, 180,                0,      290, infinite,      250, infinite,
              infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, 240, 710, infinite, infinite, infinite, infinite, infinite, infinite, infinite, 290,                     0,      210, infinite, infinite,
              infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite,  infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, 390, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, 210,                0,      290,      140,
              infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, 250, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, 300, 250, infinite, 290,                          0,      400,
              infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite,  infinite, infinite, infinite, infinite, infinite, infinite, infinite, 320, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, infinite, 140, 400,                     0
  };
      // Print the solution
      scanf("%d", &amp;origin);
      hamCycle(graph1, origin);
  
  
      return 0;
  } 
  </code></pre>
  
  <p>My problem is: the algorithm runs all the nodes, but doesnt return to origin. He just stops at the last node. Thanks for the help</p>