아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

카탄의 개척자

시간 제한1초메모리 제한128 MB

요약
차수가 3 이하인 무방향 그래프에서 같은 간선을 두 번 쓰지 않는 가장 긴 경로의 길이를 구한다.
난이도

보통10점 중 7점

유형
그래프, DFS, 백트래킹
정답자
아직 제출이 없습니다

문제

1995년 '올해의 게임'으로 선정된 보드게임 카탄의 개척자에서, 플레이어들은 미지의 황무지에 길과 개척지, 도시를 건설하며 섬을 지배하려 경쟁합니다.

한 소프트웨어 회사가 이 게임의 컴퓨터 버전을 개발하고 있으며, 당신은 다음 특별 규칙 하나를 구현해야 합니다.

게임이 끝나면, 가장 긴 길을 건설한 플레이어가 추가 승점 2점을 얻는다.

플레이어들은 보통 하나의 직선 경로가 아니라 복잡한 도로망을 건설하므로, 가장 긴 길을 찾는 일은 (사람은 대개 한눈에 알아볼지라도) 간단하지 않습니다.

여기서는 단순화한 문제를 풉니다. 정점(도시)들의 집합과, 정점들을 잇는 길이가 각각 11인 간선(도로 구간)들의 집합이 주어집니다. 가장 긴 길이란 어느 간선도 두 번 사용하지 않으면서 네트워크를 지나는 가장 긴 경로입니다. 다만, 정점은 여러 번 방문해도 됩니다.

예를 들어, 다음 네트워크에는 길이가 1212인 길이 있습니다.

o      o--o      o
 \    /    \    /
  o--o      o--o
 /    \    /    \
o      o--o      o--o
           \    /
            o--o

입력

입력은 하나 이상의 테스트 케이스로 이루어집니다.

각 테스트 케이스의 첫 줄에는 정점의 수 nn (2≤n≤252 \le n \le 25)과 간선의 수 mm (1≤m≤251 \le m \le 25), 두 정수가 주어집니다. 이어지는 mm개의 줄에는 각 간선이 잇는 두 정점의 번호가 주어집니다. 정점은 00부터 n−1n-1까지 번호가 매겨집니다. 간선은 방향이 없습니다. 모든 정점의 차수는 3 이하입니다. 네트워크가 반드시 연결되어 있지는 않습니다.

입력의 끝은 nn과 mm이 모두 00인 줄로 표시되며, 이 줄은 처리하지 않습니다.

출력

각 테스트 케이스마다, 가장 긴 길의 길이를 한 줄에 출력하세요.

예제2

  1. 예제 1

    입력
    3 2
    0 1
    1 2
    15 16
    0 2
    1 2
    2 3
    3 4
    3 5
    4 6
    5 7
    6 8
    7 8
    7 9
    8 10
    9 11
    10 12
    11 12
    10 13
    12 14
    0 0
    
    예상 출력
    2
    12
    
  2. 예제 2

    입력
    2 1
    0 1
    5 4
    0 1
    1 2
    2 3
    3 4
    3 3
    0 1
    1 2
    2 0
    0 0
    
    예상 출력
    1
    4
    3