만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

독립 집합 (최대)

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

요약
트리가 주어질 때, 서로 인접하지 않은 노드 집합 중 (노드 수)와 (집합을 연결하는 최소 간선 수)의 곱이 가장 큰 값을 구합니다.
난이도

어려움10점 중 8점

유형
트리, 동적 계획법, DFS
정답자
아직 제출이 없습니다

문제

NN개의 노드(번호는 11부터 NN까지)로 이루어진 트리가 주어진다. 간선은 11부터 N−1N - 1까지 번호가 매겨져 있고, ii번 간선은 노드 UiU_i와 ViV_i를 잇는다.

공집합이 아닌 노드 집합이 독립이라는 것은 집합에 속한 노드 중 서로 인접한 노드가 없다는 뜻이다. 아래 그림은 독립인 집합과 독립이 아닌 집합의 예를 보여준다. 빨간색으로 칠해진 노드가 집합의 원소이다.

독립 집합의 점수는 다음 두 값의 곱이다.

  • 집합에 속한 노드의 개수
  • 집합의 모든 노드를 여전히 연결된 상태로 두는 데 필요한 최소 간선 수

아래 그림은 독립 집합의 점수를 계산하는 예를 보여준다. 이 집합에는 노드가 22개 있다. 두 노드를 연결하는 데 필요한 최소 간선 수는 33이며, 빨간색 간선으로 표시되어 있다. 따라서 이 집합의 점수는 2⋅3=62 \cdot 3 = 6이다.

노드가 11개뿐인 집합의 점수는 00이다.

트리에 있는 공집합이 아닌 독립 집합 전체에서 점수의 최댓값을 구하라.

입력

첫째 줄에 정수 NN(2≤N≤100 0002 \le N \le 100\,000)이 주어진다. 다음 N−1N - 1개의 줄에는 각각 두 정수 UiU_i, ViV_i(1≤Ui,Vi≤N1 \le U_i, V_i \le N)가 주어진다. 입력으로 주어지는 간선들은 트리를 이룬다.

출력

트리에 있는 공집합이 아닌 독립 집합 중 점수의 최댓값을 정수 하나로 출력한다.

예제2

  1. 예제 1

    입력
    5
    1 2
    1 3
    3 4
    3 5
    
    예상 출력
    12
    
  2. 예제 2

    입력
    8
    1 2
    2 3
    3 4
    4 5
    5 6
    6 7
    7 8
    
    예상 출력
    28