만드는 중입니다

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

GSHS 3 분할

면접 대비

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

요약
건물들이 트리 구조로 연결되어 있고 각 건물에 학생 수가 주어집니다. 간선 두 개를 끊어 세 영역으로 나눴을 때 영역별 학생 수의 곱이 최대가 되는 값을 구합니다.
난이도

보통10점 중 6점

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

문제

경기도의 명소인 경기과학고등학교에는 11번부터 NN번까지 번호가 매겨진 건물이 있고, 건물들은 N−1N-1개의 양방향 도로로 연결되어 있습니다. 모든 건물이 서로 연결되어 있으므로 경기과학고등학교는 트리 구조입니다. 악당 동현이는 경기과학고등학교를 여러 조각으로 나눈 뒤 이곳을 지배할 계획을 세우고 있습니다.\n\n첫 번째 계획이 실패하자 동현이는 두 번째 계획을 쓰기로 했습니다. 이 계획에서 동현이는 도로 2개를 파괴해 경기과학고를 3개의 영역으로 나눕니다. 두 건물은 파괴되지 않은 도로만 거쳐 한 건물에서 다른 건물로 이동할 수 있으면 같은 영역에 속합니다.\n\n동현이는 학교에 숨겨 둔 스파이를 통해 ii번 건물에 학생이 AiA_i명 있다는 사실을 알고 있습니다. 경기과학고를 세 영역으로 나눈 뒤, 각 영역의 결집도는 그 영역에 있는 학생 수로 정합니다. 세 영역의 결집도를 곱한 값을 지배력이라고 합니다.\n\n예를 들어 N=7N=7이고 A=[1,3,4,0,3,6,2]A=[1, 3, 4, 0, 3, 6, 2]인 경우를 생각해 봅시다.\n\n\n\n동현이가 11번과 55번 건물 사이의 도로, 그리고 55번과 77번 건물 사이의 도로를 파괴하면 경기과학고등학교는 아래 그림처럼 세 영역으로 나뉩니다.\n\n\n\n11번 건물을 포함한 영역의 결집도는 1+4+0=51+4+0=5입니다. 22번 건물과 66번 건물을 포함한 영역의 결집도는 각각 66, 88입니다. 따라서 이 경우의 지배력은 5times6times8=2405\\times 6\\times 8=240입니다.\n\n경기과학고를 세 영역으로 나눠 동현이가 얻을 수 있는 지배력의 최댓값을 구하는 프로그램을 작성하세요.

입력

첫째 줄에 경기과학고등학교 건물의 수 NN이 주어집니다.\n\n둘째 줄에 각 건물의 학생 수 A1A_1, A2A_2, cdots\\cdots, ANA_N이 공백으로 구분되어 주어집니다.\n\n셋째 줄부터 N+1N+1번째 줄까지 i+2i+2번째 줄에 정수 UiU_i, ViV_i가 공백으로 구분되어 주어집니다. 이는 ii번째 도로가 UiU_i번 건물과 ViV_i번 건물을 양방향으로 연결함을 뜻합니다.

출력

첫째 줄에 동현이가 경기과학고를 세 영역으로 나눠 얻을 수 있는 지배력의 최댓값을 출력합니다.

제한

  • 3leNle1053 \\le N \\le 10^5\n- 0leAile300 \\le A_i \\le 30 (1leileN)(1 \\le i \\le N)\n- 1leUi<VileN1 \\le U_i < V_i \\le N (1leileN−1)(1 \\le i \\le N-1)\n- 경기과학고등학교의 구조는 트리입니다.

예제2

  1. 예제 1

    입력
    7
    1 3 4 0 3 6 2
    1 3
    3 4
    1 5
    2 5
    5 7
    6 7
    
    예상 출력
    240
    
  2. 예제 2

    입력
    3
    10 20 30
    1 2
    2 3
    
    예상 출력
    6000