Problem
A Hamiltonian path is a path in a graph that visits each vertex exactly once. Checking whether a graph contains a Hamiltonian path is a well-known hard problem. At the same time it is easy to perform such a check if a given graph is a DAG.
Given: A positive integer and simple directed acyclic graphs in the edge list format with at most vertices each.
Return: For each graph, if it contains a Hamiltonian path output "1" followed by a Hamiltonian path (i.e., a list of vertices), otherwise output "-1".
哈密顿路径是图形中的一个路径,该路径恰好访问每个顶点一次。检查图形是否包含哈密顿路径是众所周知的难题。同时,如果给定图是否为DAG,则很容易执行这种检查。
给定:正整数 和 简单的向无环图中边列表格式至多 每个顶点。
返回值:对于每个图,如果它包含哈密顿路径输出“ 1”,后跟哈密顿路径(即,顶点列表),否则输出“ -1”。
Sample Dataset
2 3 3 1 2 2 3 1 3 4 3 4 3 3 2 4 1
Sample Output
1 1 2 3 -1