Skip to content

사과 부수기

by _junick

Unrated
한국어

Language

Contribute a translation
Time limit
1000 ms
Memory limit
1024 MB
Submissions
0
Correct
0
Solved by
0
AC rate
—

Statement

타치바나 셰리는 아주 조금 많이 힘이 세답니다!

어느 날, 셰리짱은 테라와 루루가 운영하는 과수원에 침입했어요. 셰리짱의 괴력을 자랑하기 위해서였죠!

과수원은 사과나무를 정점으로, 사과나무 사이의 길을 간선으로 하는 하나의 포레스트로 나타낼 수 있어요. 셰리짱은 한 번의 행동으로 현재 남아 있는 아무 컴포넌트(트리) 하나를 고를 수 있어요. 고른 컴포넌트의 직전 지름을 $d$라고 할 때, 셰리짱은 그 컴포넌트에서 원하는 사과나무를 최대 $d$개 부술 수 있답니다! 이때 지름은 정점의 개수로 계산해요.

사과나무를 지우면 그 나무와 연결되어 있던 길도 함께 사라지고, 그 결과 남은 사과나무들이 여러 컴포넌트로 나뉠 수도 있어요.

에마씨에게 자랑하려면 최대한 빨리 모든 사과나무를 부숴야 해요. 셰리짱이 모든 사과나무를 지우기 위해 필요한 최소 행동 수를 구해주세요!

Input

첫째 줄에 사과나무의 수 $N$과 길의 수 $M$이 공백으로 구분되어 주어집니다. ($1 \le N \le 200\,000$; $0 \le M \le N-1$)

이후 $M$개의 줄에 걸쳐 두 정수 $u$, $v$가 주어집니다. 이는 $u$번 사과나무와 $v$번 사과나무를 연결하는 길이 존재한다는 뜻이에요. ($1 \le u,v \le N$; $u \ne v$)

같은 두 사과나무를 연결하는 길이 두 개 이상 주어지지 않습니다.

주어지는 그래프는 포레스트입니다.

Subtasks

서브태스크 추가 제한 점수
1 $N \le 8$ 3
2 $M = 0$ 2
3 모든 정점의 차수가 $2$ 이하 4
4 모든 컴포넌트의 지름이 $3$ 이하 6
5 $N \le 2\,000$ 12
6 $M = N - 1$ 18
7 추가 제한 없음 55

Output

첫째 줄에 셰리짱이 모든 사과나무를 지우기 위해 필요한 최소 행동 횟수를 출력해주세요!

Examples

Sample input 1
4 3
1 2
1 3
1 4
Sample output 1
2
Sample input 2
5 4
1 2
2 3
3 4
4 5
Sample output 2
1

Tags

No tags yet

Credits