#include <stdio.h>
#include <stdlib.h>
#define DEBUG 0
#define PRINT 0
#define NMAX 100

int new_hamilton_path(int n, int G[NMAX][NMAX]);
int new_hamilton_cycle(int n, int G[NMAX][NMAX]);
int hamilton_path(int n, int G[NMAX][NMAX]);
int hamilton_cycle(int n, int G[NMAX][NMAX]);

/*
   CSC 320 Summer 2017.

   These first two routines are of type int and return
   0 if there is no Hamilton path/cycle and
   1 if there is a Hamilton path/cycle 

   The new_hamilton_path routine can make a polynomial number
   of calls to hamilton_cycle. The syntax:
   int answer;
   answer= hamilton_cycle(n, G);

   The new_hamilton_cycle routine can make a polynomial number
   of calls to hamilton_path. The syntax:
   int answer;
   answer= hamilton_path(n, G);

   IMPORTANT NOTE:
   The adjacency matrix of the graph must be symmetric.
   If you want to add an edge (u, v) you should use the
   TWO statements:
  
   G[u][v]= 1;
   G[v][u]= 1;
  

*/
int new_hamilton_path(int n, int G[NMAX][NMAX])
{
    int answer;
    /* Replace with your new code. */
    answer=1;

    return(answer); 
}

int new_hamilton_cycle(int n, int G[NMAX][NMAX])
{
    int answer;
    /* Replace with your new code. */
    answer=1;

    return(answer); 
}
