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

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

그래프 만들기

시간 제한2초메모리 제한512 MB

요약
N개의 정점과 N-1개의 간선으로 연결된 그래프(트리)를 만들 때, 각 정점의 점수는 차수에 따라 정해지며 전체 점수의 최댓값을 구한다.
난이도

보통10점 중 6점

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

문제

노드 NN개와 간선 N−1N-1개로 이루어진 그래프를 만든다. 이 그래프는 연결되어 있어야 한다.

아래 그림은 노드 N=5N=5개와 간선 N−1=4N-1=4개로 이루어진 그래프다.

간선은 두 노드를 연결할 수 있다. 노드의 차수는 그 노드에 연결된 간선의 개수다. 위 그림에서 A의 차수는 3, B의 차수는 1이다.

그래프의 점수는 모든 노드의 점수를 더한 값이고, 각 노드의 점수는 그 노드의 차수만으로 정해진다. 차수별 점수가 주어질 때, 조건을 만족하는 그래프 중 점수가 가장 큰 것의 점수를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 노드의 개수 NN이 주어진다. (1≤N≤511 \le N \le 51)

둘째 줄에 차수별 점수가 N−1N-1개 주어진다. 차수가 1인 노드의 점수, 차수가 2인 노드의 점수, ..., 차수가 N−1N-1인 노드의 점수 순서다. 각 점수는 0 이상 10,000 이하의 정수다.

NN이 1이면 둘째 줄은 비어 있다.

출력

첫째 줄에 만들 수 있는 그래프의 점수 중 최댓값을 출력한다.

NN이 1이면 간선이 없고 차수 0에 대한 점수는 주어지지 않으므로 0을 출력한다.

예제5

  1. 예제 1

    입력
    4
    1 3 0
    
    예상 출력
    8
    
  2. 예제 2

    입력
    5
    0 0 0 10
    
    예상 출력
    10
    
  3. 예제 3

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

    입력
    4
    5 0 0
    
    예상 출력
    15
    
  5. 예제 5

    입력
    8
    1 3 2 5 3 7 5
    
    예상 출력
    20