유 방향 그래프가 주어지면 가장 긴주기를 출력하십시오.
규칙
- 합리적인 입력 형식이 허용됩니다 (예 : 모서리 목록, 연결 매트릭스).
- 레이블은 중요하지 않으므로 입력에 제공되지 않은 추가 정보를 포함하지 않는 한 필요하거나 원하는 레이블에 제한을 둘 수 있습니다 (예 :주기의 노드를 요구할 수는 없습니다) 정수로 레이블이 지정되고 다른 노드는 알파벳 문자열로 레이블이 지정됩니다).
- 주기는 모든 노드가 연결되어 있으며주기의 시작과 끝인 노드 (
[1, 2, 3, 1]
주기는되지만[1, 2, 3, 2, 1]
그렇지 않은 노드)를 제외하고는 노드가 반복 되지 않습니다. - 그래프가 비주기적인 경우 가장 긴주기의 길이는 0이므로 빈 출력이 생성됩니다 (예 : 빈 목록, 출력이 전혀 없음).
- 주기의 노드 목록의 끝에서 첫 번째 노드를 반복하면 (선택 사항
[1, 2, 3, 1]
과[1, 2, 3]
같은주기를 나타낸다). - 동일한 길이의 여러 사이클이있는 경우 하나 또는 모두가 출력 될 수 있습니다.
- 내장은 허용되지만 솔루션에서 솔루션을 사용하는 경우 사소한 내장을 사용하지 않는 대체 솔루션 (예 : 모든주기를 출력하는 내장)을 포함하는 것이 좋습니다. 그러나 대체 솔루션은 점수에 전혀 포함되지 않으므로 전적으로 선택 사항입니다.
테스트 사례
이 테스트 사례에서 입력은 에지 목록으로 제공되며 (여기서 첫 번째 요소는 소스 노드이고 두 번째 요소는 대상 노드 임) 출력은 첫 번째 / 마지막 노드를 반복하지 않는 노드 목록입니다.
[(0, 0), (0, 1)] -> [0]
[(0, 1), (1, 2)] -> []
[(0, 1), (1, 0)] -> [0, 1]
[(0, 1), (1, 2), (1, 3), (2, 4), (4, 5), (5, 1)] -> [1, 2, 4, 5]
[(0, 1), (0, 2), (1, 3), (2, 4), (3, 0), (4, 6), (6, 8), (8, 0)] -> [0, 2, 4, 6, 8]
[(0, 0), (0, 8), (0, 2), (0, 3), (0, 9), (1, 0), (1, 1), (1, 6), (1, 7), (1, 8), (1, 9), (2, 1), (2, 3), (2, 4), (2, 5), (3, 8), (3, 1), (3, 6), (3, 7), (4, 1), (4, 3), (4, 4), (4, 5), (4, 6), (4, 8), (5, 0), (5, 8), (5, 4), (6, 0), (6, 1), (6, 2), (6, 3), (6, 4), (6, 5), (6, 6), (6, 7), (6, 9), (7, 0), (7, 1), (7, 2), (7, 3), (7, 4), (7, 5), (7, 8), (7, 9), (8, 0), (8, 1), (8, 2), (8, 5), (8, 9), (9, 1), (9, 2), (9, 3), (9, 4), (9, 5), (9, 6)] -> [0, 9, 6, 7, 8, 2, 5, 4, 3, 1]
[(0, 0), (0, 2), (0, 4), (0, 5), (0, 7), (0, 9), (0, 11), (1, 2), (1, 4), (1, 5), (1, 8), (1, 9), (1, 10), (2, 0), (2, 1), (2, 3), (2, 4), (2, 5), (2, 6), (3, 0), (3, 1), (3, 5), (3, 6), (3, 7), (3, 8), (3, 9), (3, 11), (4, 1), (4, 3), (4, 7), (4, 8), (4, 9), (4, 10), (4, 11), (5, 0), (5, 4), (5, 6), (5, 7), (5, 8), (5, 11), (6, 0), (6, 8), (6, 10), (6, 3), (6, 9), (7, 8), (7, 9), (7, 2), (7, 4), (7, 5), (8, 8), (8, 9), (8, 2), (8, 4), (8, 7), (9, 0), (9, 1), (9, 2), (9, 3), (9, 6), (9, 10), (9, 11), (10, 8), (10, 3), (10, 5), (10, 6), (11, 2), (11, 4), (11, 5), (11, 9), (11, 10), (11, 11)] -> [0, 11, 10, 6, 9, 3, 8, 7, 5, 4, 1, 2]