V = On input <G,s,t,C>
1. Check if C = (v0, v1, ..., vn) is a sequence of vertices of G;
if not, then REJECT
2. Check if |C| = |V|; if not then REJECT
3. Check if v0 = s and vn = t and that all the other vertices
are unique
4. For i = 0...n-1:
a. Check if vi ---> v(i+1) is an edge in G; if not, then REJECT
4. If we get here, then C is a valid Hamiltonian path, so ACCEPT